matlab中Inner matrix dimensions must agree,

学习 时间:2026-03-30 11:40:57 阅读:8746
matlab中Inner matrix dimensions must agree,我写的程序如下:w=[10^(-3):1000000];R1=50;R2=150;Q=0.00001;n=0.8;r=50;R0=150;u=Q*w.^n*cos(3.14*n/2);v=Q*w.^n*sin(3.14*n/2);K=-R0*sqrt(2*w)/r; %K是一个矩阵e=2.718;a=0.5*sqrt(2)*r*(e.^(2*K)*sin(K)-1);b=0.5*sqrt(2)*(2*e.^(2*K)*sin(K)-e.^(2*K)+1);d=sqrt(w)*(e.^(2*K)+2*e.^(2*K)*cos(K)+1);f=d*R1-a;Z1=R1+[f*(u*f+b*v+d)-b*(v*f-u*b)]/[(u*f+b*v+d).^2+(v*f-u*b).^2];Z2=[-b*(u*f+b*v+d)+f*(v*f-u*b)]/[(u*f+b*v+d).^2+(v*f-u*b).^2];plot(Z1,-Z2)调试的时候报错:Error using ==> mtimesInner matrix dimensions must agree.Error in ==> Untitled4 at 12a=0.5*sqrt(2)*r*(e.^(2*K)*sin(K)-1);该怎样改啊?

最佳回答

悦耳的往事

小巧的胡萝卜

2026-03-30 11:40:57

回答问题以前,先举一个例子:如果a=[1 2 3 4]; b=[2 2 2 2]; 则a*b'=10,a*b出错,a。*b=[2 4 6 8]。如果你想计算数组的对应元素于另一个数组的对应元素的乘积,你需要用 。*,而不是 *。试一下修改以后的程序。w=[10^(-3):1000000]; R1=50;R2=150;Q=0。00001;n=0。8;r=50;R0=150;u=Q*w。^n*cos(3。14*n/2);v=Q*w。^n*sin(3。14*n/2);K=-R0*sqrt(2*w)/r; %K是一个矩阵e=2。718;a=0。5*sqrt(2)*r*(e。^(2*K)。*sin(K)-1);b=0。5*sqrt(2)*(2*e。^(2*K)。*sin(K)-e。^(2*K)+1);d=sqrt(w)。*(e。^(2*K)+2*e。^(2*K)。*cos(K)+1);f=d*R1-a;Z1=R1+[f。*(u。*f+b。*v+d)-b。*(v。*f-u。*b)]。/[(u。*f+b。*v+d)。^2+(v。*f-u。*b)。^2];Z2=[-b。*(u。*f+b。*v+d)+f。*(v。*f-u。*b)]。/[(u。*f+b。*v+d)。^2+(v。*f-u。*b)。^2];plot(Z1,-Z2)另外,建议将第一句改为 w=10。^[-3:0。01:6]; 这样可以用较短的数组得到更好的结果。

最新回答共有2条回答

  • 机灵的抽屉
    回复
    2026-03-30 11:40:57

    回答问题以前,先举一个例子:如果a=[1 2 3 4]; b=[2 2 2 2]; 则a*b'=10,a*b出错,a。*b=[2 4 6 8]。如果你想计算数组的对应元素于另一个数组的对应元素的乘积,你需要用 。*,而不是 *。试一下修改以后的程序。w=[10^(-3):1000000]; R1=50;R2=150;Q=0。00001;n=0。8;r=50;R0=150;u=Q*w。^n*cos(3。14*n/2);v=Q*w。^n*sin(3。14*n/2);K=-R0*sqrt(2*w)/r; %K是一个矩阵e=2。718;a=0。5*sqrt(2)*r*(e。^(2*K)。*sin(K)-1);b=0。5*sqrt(2)*(2*e。^(2*K)。*sin(K)-e。^(2*K)+1);d=sqrt(w)。*(e。^(2*K)+2*e。^(2*K)。*cos(K)+1);f=d*R1-a;Z1=R1+[f。*(u。*f+b。*v+d)-b。*(v。*f-u。*b)]。/[(u。*f+b。*v+d)。^2+(v。*f-u。*b)。^2];Z2=[-b。*(u。*f+b。*v+d)+f。*(v。*f-u。*b)]。/[(u。*f+b。*v+d)。^2+(v。*f-u。*b)。^2];plot(Z1,-Z2)另外,建议将第一句改为 w=10。^[-3:0。01:6]; 这样可以用较短的数组得到更好的结果。

上一篇 粘鼠板用的是什么胶

下一篇 风管机和柜机的优缺点