求高手帮忙
matlab吧
全部回复
仅看楼主
level 2
各位高手在下有个关于matlab的程序,想请大家帮忙;程序如下:
clear
clc
close all
D=0.00001:0.000002:0.002;
R1=inf;
R2=inf;
lambda=1.064e-3;
d1=1.2e3;
d2=1e3;
a=1-d2.*D;
b=d1+d2-d1*d2.*D;
d=1-d1.*D;
G1=a-b/R1;
G2=d-b/R2;
P2=abs(b).*sqrt(G1./(G2.*(1-G1.*G2)));
wop=sqrt(lambda/pi*P2.*(d2^2./P2.^2+1));
plot(D,wop)
axis([0,0.002,0,3]);
程序计算得到的wop含有复数,需要将复数去除,同时也需要将与复数对应的D值去除,再对计算结果绘图,并且需要将去除复数和相对应的D值的原来位置空出来,使新得到的数组不占用。
这是正确的计算结果:
这是含有复数的计算结果:
请各位高手不吝赐教,怎样才能得到第一幅图,非常感谢!
2013年03月29日 15点03分 1
level 8
@dn1630 找她
~来自百度贴吧for小米 4.2.1~
2013年03月29日 15点03分 2
level 11
clear
clc
close all
D=0.00001:0.0000002:0.002;
R1=inf;
R2=inf;
lambda=1.064e-3;
d1=1.2e3;
d2=1e3;
a=1-d2.*D;
b=d1+d2-d1*d2.*D;
d=1-d1.*D;
G1=a-b/R1;
G2=d-b/R2;
P2=abs(b).*sqrt(G1./(G2.*(1-G1.*G2)));
wop=sqrt(lambda/pi*P2.*(d2^2./P2.^2+1));
wop(find(imag(wop)~=0))=Inf;
plot(D,wop)
axis([0,0.002,0,3]);
这样?
2013年03月29日 16点03分 3
太感谢了啊,果然是高手啊,膜拜![顶]
2013年03月29日 16点03分
回复 yuanchunhua413 :不是高手~只是试出来的~多动手试试你也可以的~
2013年03月29日 16点03分
1