caizy027
2011-08-14, 13:25
想通过获取滚动条的值,运行公式得到曲线。M文件run之后得到了滚动条控件和曲线图。但是改变滚动条,曲线不变。。。感觉程序还少一个循环?
c=299792458;
pi=acos(-1);
y=0:0.01:90;
x=y*pi/180;
figure(1);
clf
axes('position',[.04 .120 .5 .837])
n6=uicontrol('style','popup','string','LED|He-Ne激光器');
set(n6,'units','normalized','position',[.626 .85 .094 .033]);
n5=uicontrol('style','slider','min',0,'max',2,'value',1.333);
set(n5,'units','normalized','position',[.626 .647 .094 .033]);
n1=uicontrol('style','slider','min',0,'max',1,'value',0.5);
set(n1,'units','normalized','position',[.626 .477 .094 .033]);
n2=uicontrol('style','slider','min',0,'max',2,'value',1.7);
set(n2,'units','normalized','position',[.626 .286 .094 .033]);
n3=uicontrol('style','slider','min',0,'max',2,'value',1.7);
set(n3,'units','normalized','position',[.626 .127 .094 .033]);
k1=uicontrol('style','slider','min',0,'max',4,'value',3.1);
set(k1,'units','normalized','position',[.772 .477 .094 .033]);
k2=uicontrol('style','slider','min',0,'max',1,'value',0.5);
set(k2,'units','normalized','position',[.772 .286 .094 .033]);
D1=uicontrol('style','slider','min',0,'max',100,'value',88);
set(D1,'units','normalized','position',[.89 .477 .094 .033]);
D2=uicontrol('style','slider','min',0,'max',400,'value',20);
set(D2,'units','normalized','position',[.89 .286 .094 .033]);
f=get(n6,'value');
if f==1
bo=760e-9;
else
bo=632.8e-9;
end
en5=get(n5,'value');
en1=get(n1,'value');
en2=get(n2,'value');
en3=get(n3,'value');
ek1=get(k1,'value');
ek2=get(k2,'value');
ek3=0;
d1=1e-9*get(D1,'value');
d2=1e-9*get(D2,'value');
e5=complex(en5.^2,0);
er=en1.^2-ek1.^2;
ei=2.*en1.*ek1;
e1=complex(er,ei);
er=en2.^2-ek2.^2;
ei=2.*en2.*ek2;
e2=complex(er,ei);
er=en3.^2-ek3.^2;
ei=2.*en3.*ek3;
e3=complex(er,ei);
w=2*pi/bo*c;
kx=w.*en5./c.*sin(x);
t=e5.*(2*pi./bo).^2;
kz0=sqrt(t-kx.^2);
kz1=sqrt((2*pi./bo).^2.*e1-kx.^2);
kz2=sqrt((2*pi./bo).^2.*e2-kx.^2);
kz3=sqrt((2*pi./bo).^2.*e3-kx.^2);
r12=(e2.*kz1-e1.*kz2)./(e2.*kz1+e1.*kz2);
r23=(e3.*kz2-e2.*kz3)./(e3.*kz2+e2.*kz3);
r123=(r12+r23.*exp(i*2.*kz2.*d2))./(1+r12.*r23.*exp(i*2.*k2.*d2));
r01=(e1.*kz0-e5.*kz1)./(e1*kz0+e5.*kz1);
z=(r01+r123.*exp(i.*2.*kz2.*d1))./(1+r01.*r123.*exp(2.*i.*kz2.*d1));
R = sqrt(real(z).^2 + imag(z).^2);
R = R.^2;
plot(y,R);
axis([0,90,0,1]);
c=299792458;
pi=acos(-1);
y=0:0.01:90;
x=y*pi/180;
figure(1);
clf
axes('position',[.04 .120 .5 .837])
n6=uicontrol('style','popup','string','LED|He-Ne激光器');
set(n6,'units','normalized','position',[.626 .85 .094 .033]);
n5=uicontrol('style','slider','min',0,'max',2,'value',1.333);
set(n5,'units','normalized','position',[.626 .647 .094 .033]);
n1=uicontrol('style','slider','min',0,'max',1,'value',0.5);
set(n1,'units','normalized','position',[.626 .477 .094 .033]);
n2=uicontrol('style','slider','min',0,'max',2,'value',1.7);
set(n2,'units','normalized','position',[.626 .286 .094 .033]);
n3=uicontrol('style','slider','min',0,'max',2,'value',1.7);
set(n3,'units','normalized','position',[.626 .127 .094 .033]);
k1=uicontrol('style','slider','min',0,'max',4,'value',3.1);
set(k1,'units','normalized','position',[.772 .477 .094 .033]);
k2=uicontrol('style','slider','min',0,'max',1,'value',0.5);
set(k2,'units','normalized','position',[.772 .286 .094 .033]);
D1=uicontrol('style','slider','min',0,'max',100,'value',88);
set(D1,'units','normalized','position',[.89 .477 .094 .033]);
D2=uicontrol('style','slider','min',0,'max',400,'value',20);
set(D2,'units','normalized','position',[.89 .286 .094 .033]);
f=get(n6,'value');
if f==1
bo=760e-9;
else
bo=632.8e-9;
end
en5=get(n5,'value');
en1=get(n1,'value');
en2=get(n2,'value');
en3=get(n3,'value');
ek1=get(k1,'value');
ek2=get(k2,'value');
ek3=0;
d1=1e-9*get(D1,'value');
d2=1e-9*get(D2,'value');
e5=complex(en5.^2,0);
er=en1.^2-ek1.^2;
ei=2.*en1.*ek1;
e1=complex(er,ei);
er=en2.^2-ek2.^2;
ei=2.*en2.*ek2;
e2=complex(er,ei);
er=en3.^2-ek3.^2;
ei=2.*en3.*ek3;
e3=complex(er,ei);
w=2*pi/bo*c;
kx=w.*en5./c.*sin(x);
t=e5.*(2*pi./bo).^2;
kz0=sqrt(t-kx.^2);
kz1=sqrt((2*pi./bo).^2.*e1-kx.^2);
kz2=sqrt((2*pi./bo).^2.*e2-kx.^2);
kz3=sqrt((2*pi./bo).^2.*e3-kx.^2);
r12=(e2.*kz1-e1.*kz2)./(e2.*kz1+e1.*kz2);
r23=(e3.*kz2-e2.*kz3)./(e3.*kz2+e2.*kz3);
r123=(r12+r23.*exp(i*2.*kz2.*d2))./(1+r12.*r23.*exp(i*2.*k2.*d2));
r01=(e1.*kz0-e5.*kz1)./(e1*kz0+e5.*kz1);
z=(r01+r123.*exp(i.*2.*kz2.*d1))./(1+r01.*r123.*exp(2.*i.*kz2.*d1));
R = sqrt(real(z).^2 + imag(z).^2);
R = R.^2;
plot(y,R);
axis([0,90,0,1]);