matlab里出现Subscript indices must either be real positive integers or logicals.求高手解决
clc clear all a=4; b=3.2; x=2; y=1.6; z=100; M=input('M='); N=input('N='); f=1:2*10^8:12*10^9; lanmda=3*10^8./f; S1=0; S2=0; for m=1:M for n=1:N Kx=m*pi/a+j*m*lanmda/(3*a^2); Ky=n*pi/b+j*n*lanmda/(3*b^2); Kz=((2*pi./lanmda).^2-Kx.^2-Ky.^2).^0.5; Ehx=cos(Kx.*x).*cos(Ky.*y).*exp(-j*Kz.*z); Ehz=j*Kx./Kz.*sin(Kx.*x).*cos(Ky.*y).*exp(-j*Kz.*z); S1=Ehx+Ehz+S1; end end S1=abs(S1); Sa1(f)=10*log(S1); plot(f,Sa1); ??? Subscript indices must either be real positive integers or logicals. Error in ==> d at 27Sa1(f)=10*log(S1); 另为什么我Kx里有值,而Ky,Kz里没值 kz也是这样 而S1出现NaN 实在找不出解决方法了,求高手
最满意答案
把这一句Sa1(f)=10*log(S1); 改为:Sa1=10*log(S1); 再试试更多推荐
发布评论