matlab app designer:夫琅禾费圆孔衍射仿真

代码部分:

%仅回调函数

% Button pushed function: plotButton
        function plotButtonPushed(app, event)
            R=app.REditField.Value;
            lambda=app.lambdaEditField.Value;
            x=[0:0.01:6];
            theta=asin(lambda*x/R);
            m=pi*R*sin(theta)/lambda;
            z=(besselj(1,2*m)).^2./m.^2;
            plot(app.ax1,x,z);
            u=[-6:0.01:6];
            theta=asin(lambda*u/R);
            m=pi*R*sin(theta)/lambda;
            z=(besselj(1,2*m)).^2./m.^2;
            plot(app.ax4,u,z);
            
            
           y=[0:0.01:6];          
          [X,Y]=meshgrid(x,y);
          r1=sqrt((X-3).^2+(Y-3).^2);
          theta2=asin(lambda*r1/R);
           m2=pi*R*sin(theta2)/lambda;
           z2=abs((besselj(1,2*m2)).^2./m2.^2);
           mesh(app.ax3,x,y,z2);
                imagesc(app.ax2,z2.^0.3);
        colormap(app.ax2,gray(256));
        end

        % Button pushed function: clearButton
        function clearButtonPushed(app, event)
             cla(app.ax1,'reset');
            cla(app.ax2,'reset');
             cla(app.ax3,'reset');
            cla(app.ax4,'reset');
        end
    end

运行结果:

matlab app designer:夫琅禾费圆孔衍射仿真_第1张图片

 

你可能感兴趣的:(matlab,开发语言)