www.gusucode.com > Fox-Li模拟谐振腔,含有条形,矩形,圆形腔,并做成GUI可是界面源码程序 > code3/circle.m

    function circle(edit3_button,edit4_button,edit5_button,edit6_button,handles)
N=199;
A=ones(N+1,1);
B=ones(N+1,1);
C=ones(N+1,1);
a=edit3_button;
L=edit4_button;
b=edit5_button;
k=2*pi/b;
m=1:N+1;
dr=a/N;
dang=2*pi/(N);
diedai=edit6_button;
r=dr*(m-1);
ang=dang*(m-1);
for n=1:diedai
    for j=1:N+1
        
       B(j)=sum(exp(-i*k*L)*exp(-i*k*(r(j)^2+(r.^2)')/(2*L)).*r'.*(exp(i*k*r(j)*r'*cos(ang)/L)*dang*C).*A);
    end
    ma=max(B);
    A=B/ma;
 axes(handles.axes1)
    mesh(r'*cos(ang),r'*sin(ang),abs(A)*C')
 axes(handles.axes2)
   mesh(r'*cos(ang),r'*sin(ang),angle(A)*C')
   mywaitbar(diedai,300,10,n)
    set(handles.text17,'String',[num2str(n*100/diedai),'%'])
end
mywaitbaroff(diedai,300,10)