为什么二次曲线图会给出matlab错误?

时间:2015-02-11 15:23:11

标签: matlab

我试图如下图: -

x=0:0.1:1;
plot(x,2*x-x^2);

为什么会出现以下错误: -

Error using  ^ 
Inputs must be a scalar and a square matrix.
To compute elementwise POWER, use POWER (.^) instead.

目标是仅绘制二次函数。所以我修改了以上内容: -

x=0:0.1:1;
plot(x,2*x-x*x);

错误仍然存​​在: -

Error using  * 
Inner matrix dimensions must agree.

我哪里错了?

1 个答案:

答案 0 :(得分:1)

你想要

x=0:0.1:1;
plot(x,2*x-x.^2);

x=0:0.1:1;
plot(x,2*x-x.*x);

当两个操作数都是数组时,MATLAB自动使用*运算符进行矩阵乘法,当左操作数是数组时,MATLAB使用^进行矩阵乘法。这适用于一维和二维阵列。

x*xx^2正在尝试将1x11数组矩阵乘以1x11数组,这没有任何意义,因此Inner matrix dimensions must agree.错误。

要对数组执行逐元素操作,必须在运算符前加.作为前缀。例如,x.*x执行逐元素乘法,x.^2执行逐元素取幂。

见下文:

>> A = magic(3)

A =

     8     1     6
     3     5     7
     4     9     2

>> A*A % or A^2 do matrix multiplication

ans =

    91    67    67
    67    91    67
    67    67    91

>> A.*A % or A.^2 do element-wise multiplication, (the square of each element)

    64     1    36
     9    25    49
    16    81     4