Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MATLAB错误:“;矩阵尺寸必须符合”;当不处理矩阵时_Matlab - Fatal编程技术网

MATLAB错误:“;矩阵尺寸必须符合”;当不处理矩阵时

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 我早些时候查过这个问题,我看到一个类似的问题,操作员面前缺少一个(.)并在我

我试图找到位移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 
我早些时候查过这个问题,我看到一个类似的问题,操作员面前缺少一个(.)并在我的代码上尝试了这个方法,但仍然无法让它工作。我不知道我是否把它们放错了地方,但我还是被卡住了


有人能告诉我哪里出错了吗?

这很可能是因为在
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应用程序。因此,如果你有向量,并且你想应用元素乘法,你需要使用*