我试图绘制以下函数:
使用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));
然后我尝试使用'./'和'。*',但它仍然给我同样的错误。我做错了什么?
答案 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 × m
和m × p
。在这种情况下,您需要循环乘以k
的每个元素。