matlab app designer夫琅禾费单缝衍射、光栅衍射仿真

单缝衍射代码部分:

%(本文只展示回调函数)

  % Button pushed function: plotButton
        function plotButtonPushed(app, event)

b=app.bEditField.Value;
  lambda=app.lambdaEditField.Value;


            x=(-6:0.001:6);
            theta=atan(x);
            u=pi*b*sin(theta)/lambda;
            y=sin(u).*sin(u)./u.^2;


     plot(app.axes1,x,y);
     image(app.axes2,256*y.^0.3);
     colormap(app.axes2,gray(256));

end

 function clearButtonPushed(app, event)
            cla(app.axes1,'reset');
            cla(app.axes2,'reset');
        end

运行结果:matlab app designer夫琅禾费单缝衍射、光栅衍射仿真_第1张图片

光栅衍射代码部分:

 % Button pushed function: plotButton
        function plotButtonPushed(app, event)
           b=app.bEditField.Value;
            d=app.dEditField.Value;
            lambda=app.lambdaEditField.Value;
            f=app.fEditField.Value;
            N=app.NEditField.Value;
            m=2*lambda*f/b;
                    x=linspace(-m,m,1001);
                    for i=1:1001
                        sintheta=x(i)/f;
                         u=pi*b*sintheta/lambda;
                         v=pi*d*sintheta/lambda;
                         y(i,:)=(sin(u)/u)^2*(sin(N*v)/sin(v))^2;
                         Y=y/max(y);
                    end
         plot(app.ax1,Y,x);
         image(app.ax2,y*256);
         colormap(app.ax2,gray(256));
        end

运行结果:

matlab app designer夫琅禾费单缝衍射、光栅衍射仿真_第2张图片

 

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