从 sym 转换为 double 时出现以下错误: Unable to convert expression into double array. 出错 calculate_Legendre_polynomials (line 5) P(2) = sym('x'); % 使用符号变量,保留精度
时间: 2024-03-15 21:46:37 浏览: 317
double 计算过程出现的误差
5星 · 资源好评率100%
这个错误是因为您将符号变量 `x` 赋值给了数组 `P(2)`,导致无法将符号变量转换为双精度数组。
要解决这个问题,您可以考虑将 `P` 数组定义为符号变量数组,而不是双精度数组。例如,您可以使用以下代码来定义 `P` 数组:
```
syms x;
P = sym('P', [1 3]);
P(1) = 1;
P(2) = x;
```
这样,`P` 数组的每个元素都将是符号变量,您就可以在后续计算中保留精度。如果需要将符号变量转换为双精度数组,可以使用 `double()` 函数进行转换。
阅读全文