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

光栅衍射代码部分:

 % 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

运行结果:

 

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年9月6日
下一篇 2022年9月6日

相关推荐