作业帮 > 综合 > 作业

matlab 提示说内矩阵维度不一致.

来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/07/25 17:52:17
matlab 提示说内矩阵维度不一致.
方程:
function y=f(m1,m2,j)
g=9.8;
y=[0,m1*g,0,m2*g]'*inv([m1*cos(j),-m1,-sin(j),0;m1*sin(j),0,cos(j),0;0,m2,-sin(j),0;0,0,-cos(j),1])
y
结果:
>> hanshu(12,12,8)
? Error using ==> mtimes
Inner matrix dimensions must agree.
Error in ==> hanshu at 3
y=[0,m1*g,0,m2*g]'*inv([m1*cos(j),-m1,-sin(j),0;m1*sin(j),0,cos(j),0;0,m2,-sin(j),0;0,0,-cos(j),1])
>>
matlab 提示说内矩阵维度不一致.
[0,m1*g,0,m2*g]'
不要转置,直接[0,m1*g,0,m2*g]就好
再问: 你好,该题的原题为如果不转置,[0,m1*g,0,m2*g]是一个一行的一位行向量?

再答: 矩阵乘法规定的,第一个阵的列数必须与第二个阵的行数一致,否则matlab就提示出错。
不转置的话[0,m1*g,0,m2*g]是一个1行四列的向量
刚看了看原题,是不是为了求解X写的函数?
X=inv(A)*B,
矩阵乘法可没有交换律
try
y=inv([m1*cos(j),-m1,-sin(j),0;m1*sin(j),0,cos(j),0;0,m2,-sin(j),0;0,0,-cos(j),1])*[0,m1*g,0,m2*g]