Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2012-02-23
年龄: 37
帖子: 2
声望力: 0 ![]() |
![]()
[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,数组的减法不是可以直接用“-”,希望高手能够指点一下!不胜感谢!!! |
![]() |
![]() |