当我试图执行此代码时,我得到一个"无法执行赋值,因为左侧和右侧有不同数量的元素。"错误问题出在哪里?谢谢你的帮助。
A = 1250;
Q = 450;
t = (0:0.5:10);
y(1) = 0;
for i = 1:length(t)
y(i+1) = y(i) + [(3*(Q/A).*sind(t).^2)-(Q/A)].*0.5;
end
display(y);
在for
循环中,将表达式(RHS(分配给数组(LHS(。y(i)
是1x1
阵列,RHS具有与t
(1x21
(相同的维度。不能将21个值分配给只能容纳一个值的数组。要修复,我建议预先分配y
,使用行
y = zeros(numel(t), numel(t))
或者,我想你可能打算的是,一次只调用t
的一个元素
y(i+1) = y(i) + [(3*(Q/A).*sind(t(i)).^2)-(Q/A)].*0.5;
顺便说一句,使用i
作为变量是不好的做法,因为它在Matlab中已经有了内置值。对于循环索引,我通常使用ii
、jj
或k
。