登录论坛

查看完整版本 : [MATLAB基础] 求助,关于matlab4维作图和矩阵运算的问题


maximus1214
2012-02-24, 20:04
[X,Y,Z]=meshgrid(0:0.05:5,0:0.05:5,0:0.05:3);
A=linspace(1,1.59,60);
B=linspace(3.41,4,60);
i=1;
U=pi/3;
u=pi/6;
m=-1*log(2)/log(cos(u));
I=i*cos(U)^m;
for iz=Z
for ix=X
for iy=Y
for ia=A
for ib=B
if acos((3-Z)/sqrt((A-X)^2+(A-Y)^2+(3-Z)^2))<=u%A阵列
E1=I*(3-Z)/sqrt((A-X)^2+(A-Y)^2+(3-Z)^2)/((A-X)^2+(A-Y)^2+(3-Z)^2);
else
E1=0;
end
if acos((3-Z)/sqrt((B-X)^2+(A-Y)^2+(3-Z)^2))<=u%B阵列
E2=I*(3-Z)/sqrt((B-X)^2+(A-Y)^2+(3-Z)^2)/((B-X)^2+(A-Y)^2+(3-Z)^2);
else
E2=0;
end
if acos((3-Z)/sqrt((A-X)^2+(B-Y)^2+(3-Z)^2))<=u%C阵列
E3=I*(3-Z)/sqrt((A-X)^2+(B-Y)^2+(3-Z)^2)/((A-X)^2+(B-Y)^2+(3-Z)^2);
else
E3=0;
end
if acos((3-Z)/sqrt((B-X)^2+(B-Y)^2+(3-Z)^2))<=u%D阵列
E4=I*(3-Z)/sqrt((B-X)^2+(B-Y)^2+(3-Z)^2)/((B-X)^2+(B-Y)^2+(3-Z)^2);
else
E4=0;
end
E=E1+E2+E3+E4;
end
end
end
end
end
surf(X,Y,Z,E);

红色这行开始报错,错误是Error using -
Matrix dimensions must agree.
我初学matlab,数组的减法不是可以直接用“-”,希望高手能够指点一下!不胜感谢!!!

maximus1214
2012-02-24, 21:10
希望有高手能回答一下,刚刚学!!!

aiyaolei
2012-02-28, 08:57
matlab专家,提供辅导: 程序设计, 等等 QQ:1913950023

yhcode
2012-02-28, 09:53
先运行出错行之前的所有语句,之后看看出错行所涉及变量是否满足矩阵运算的维数要求,如果不满足,单步重新运行出错行上面的语句,重点看出错行涉及的变量相关的语句,看看相应变量的维数是否合理