我试图找到如图所示的位移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
我之前提到了这个问题并且我看到了一个类似的问题,其中在运算符前面缺少(。)并在我的代码上尝试了这个但仍然无法使其工作。我不知道我是否把它们放在了错误的地方,但我仍然被困住了。
有谁能告诉我哪里出错了?
答案 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))