matlab提示我 错误使用 * 内部矩阵维度必须一致。应该怎么改

2024-12-05 08:59:59
推荐回答(5个)
回答1:

y2的表达式里有n,y=y1.*y2; 可以正确计算的前提是x与n的长度要一致,如果二者不一致,就会出现你看到的错误提示。

  • MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。

回答2:

matlab中分为矩阵的乘法和普通的乘法。
举一个例子,比如,
A=[1 2 3
4 5 6]
是一个2*3的矩阵,
B=[1
3
9]
是一个3*1的矩阵,
C=10;是一个数
当希望算矩阵的乘法时,X=A*B,得到的X是一个2*1的矩阵
当希望矩阵B中每一个数都乘以系数C时,语句为X=A.*B,乘号前有一个点,
对于数组,可以当做矩阵处理,一般情况下都应点乘。
在你的例子中,应该改为
Za=(u0./(2.*pi)).*ms.*((R.*R-x.*x).*sin(IS)-2.*R.*x.*cos(IS))./((R.^2+x.^2).^2);
Ha=-(u0./(2.*pi)).*ms.*((R.*R-x.*x).*cos(IS)+2.*R.*sin(IS))./((R.^2+x.^2).^2);
DeltaT=(u0./(2.*pi)).*ms.*((R.*R-x.*x).*(sin(IS).*sin(I0)-cos(IS).*cos(I0).*cos(A)))-2.*R.*x.*cos(IS).*sin(Is).*cos(I0).*cos(A)./((R.^2+x.^2).^2);
应该就没问题了

回答3:

MATLAB乘法:MATLAB进行的乘法是矩阵或者向量之间的乘法,因此必须满足矩阵的乘法规则才可以直接使用“*”。要想按照向量中的各元素相乘,需用“.*”,因此此处用“.*”即可

回答4:

替换*为.*
替换/为./
替换^为.^

回答5:

在工作空间检查矩阵的尺寸,要保证矩阵维度一致。