MATLAB错误:“;矩阵尺寸必须符合”;当不处理矩阵时
我试图找到位移x(t),如图所示,但我不断得到误差MATLAB错误:“;矩阵尺寸必须符合”;当不处理矩阵时,matlab,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 我早些时候查过这个问题,我看到一个类似的问题,操作员面前缺少一个(.)并在我
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
我早些时候查过这个问题,我看到一个类似的问题,操作员面前缺少一个(.)并在我的代码上尝试了这个方法,但仍然无法让它工作。我不知道我是否把它们放错了地方,但我还是被卡住了
有人能告诉我哪里出错了吗?这很可能是因为在
x
的表达式中使用了t
,而不是t(I)
。(假设所有其他变量都是标量
尝试:
更好的解决方案是将其矢量化:
t = (1:100)./40;
x = (C1.*exp(-s+(((s^2)-1)^.5)*Wn.*t))+ (C2.*exp(-s-(((s^2)-1)^.5)*Wn.*t))
这很可能是因为在
x
的表达式中使用了t
,而不是t(i)
(假设所有其他变量都是标量)
尝试:
更好的解决方案是将其矢量化:
t = (1:100)./40;
x = (C1.*exp(-s+(((s^2)-1)^.5)*Wn.*t))+ (C2.*exp(-s-(((s^2)-1)^.5)*Wn.*t))
这是基本的矩阵数学,你有两个不兼容的大小。MATLAB是聪明的,但不是太聪明的东西来理解你的思想。检查你的C1和C2是什么,并通过你分配x(i)的行进行调试。同样,试着使用这个
x(i)=(C1.*exp(-s+((s^2)-1^.5)*Wn t)+(C2.*exp(-s-((s^2)-1^.5)*Wn t))
假设Wn和t都是一维向量。至少更新问题,澄清Wn的大小,正如hagubear评论的那样,因为matlab*是一个矩阵多重应用程序。因此,如果你有向量,并且你想应用元素多重叠加,你需要使用。*这是基本的矩阵数学,两个大小都不兼容。matlab很聪明,但不是聪明的事情太多了,不可能一直理解你的思想。检查你的C1和C2是什么,并通过你分配x(i)的那一行进行调试,试着使用这个x(i)=(C1.*exp(-s+((s^2)-1^.5)*Wn*t))+(C2.*exp(-s-((s^2)-1^.5)*Wn t))
假设Wn和t都是一维向量。至少要更新问题,澄清Wn的大小,正如hagubear评论的那样,因为matlab*是一个矩阵mullti应用程序。因此,如果你有向量,并且你想应用元素乘法,你需要使用*