MATLAB绘图错误

时间:2014-01-20 17:40:09

标签: matlab matrix plot

我试图绘制以下函数:

enter image description here

使用0.002的步长,时间间隔为0到5秒。 这就是我到目前为止......

t = 0:0.002:5;
k = [2; 4; 6; 8];
i = (1/pi) + 0.5*sin(4*t) - (2/pi)*sum((cos(4*k*t))/(k*k-1));
plot(t,i)

它给了我错误:

Error using  * 
Inner matrix dimensions must agree.

Error in lab1_5 (line 4)
i = (1/pi) + 0.5*sin(4*t) -
(2/pi)*sum((cos(4*k*t))/(k*k-1));

然后我尝试使用'./'和'。*',但它仍然给我同样的错误。我做错了什么?

1 个答案:

答案 0 :(得分:1)

将您的代码更改为:

t = 0:0.002:5;
k = [2; 4; 6; 8];

i = (1/pi) + 0.5*sin(4*t)
for j=1:4
    i = i-(2/pi)*((cos(4*k(j)*t))/(k(j)*k(j)-1));
end
plot(t,i)

原因是k是col-vector(或4x1矩阵),因此您不能简单地将其乘以k*k。对于矩阵乘法,左右大小必须遵循n × mm × p。在这种情况下,您需要循环乘以k的每个元素。