Matlab多项式拟合

时间:2018-07-10 07:35:13

标签: arrays matlab

我想要一个步长为0.5的-2到2的矢量,该矢量将另存为x。接下来,我要y为y = 3 * x ^ 3 + 3 * x + 6。

当我执行x = linspace(-2,3,9)时我得到

-2.0000   -1.5000   -1.0000   -0.5000         0    0.5000    1.0000    1.5000    2.0000

但是编译器仍然抱怨: 使用^

时出错
Incorrect dimensions for raising a matrix to a power. Check that the matrix is square and the power is a scalar. To perform elementwise matrix powers, use '.^'.

2 个答案:

答案 0 :(得分:2)

您需要按元素进行。^操作(请参阅错误消息)。 matlab中有两种类型的操作。常用的矢量方式运算符(*,/,^)及其对应的元素运算符(。*,./,。^)。

使用标量时这没关系,但是一旦在向量或矩阵上运行,操作就会改变。

请查看here,以获得更深入的说明。

答案 1 :(得分:1)

只需在功率符号前使用点(。),这是因为您正在对整个矩阵使用功率符号,并且需要进行逐元素运算。

x=linspace(-2,3,9)
y=3*x.^3+3*x+6