MATLAB错误:不处理矩阵时“矩阵尺寸必须一致”

时间:2014-10-24 10:21:34

标签: matlab

我试图找到如图所示的位移x(t),但我继续得到错误

Error using  + 
Matrix dimensions must agree. 

我的代码如下所示,其代码为过阻尼振动系统

for i = 1 : 100; 
   t(i)= i/40;
   x(i) = (C1*exp(-s+(((s^2)-1)^.5)*Wn*t)) + (C2*exp(-s-(((s^2)-1)^.5)*Wn*t));
end 

我之前提到了这个问题并且我看到了一个类似的问题,其中在运算符前面缺少(。)并在我的代码上尝试了这个但仍然无法使其工作。我不知道我是否把它们放在了错误的地方,但我仍然被困住了。

有谁能告诉我哪里出错了?

1 个答案:

答案 0 :(得分:4)

这很可能是因为您在t的表达式中使用x,而不是t(i)。 (假设所有其他变量都是标量。

尝试:

for ii = 1 : 100; 
   t(ii)= ii/40
   x(ii) = (C1*exp(-s+(((s^2)-1)^0.5)*Wn*t(ii)))+ (C2*exp(-s-(((s^2)-1)^0.5)*Wn*t(ii)))
end

更好的解决方案是对此进行矢量化:

t = (1:100)./40;
x = (C1.*exp(-s+(((s^2)-1)^.5)*Wn.*t))+ (C2.*exp(-s-(((s^2)-1)^.5)*Wn.*t))