单缝衍射matlab,MATLAB模拟光的单缝衍射

我使用32位R2012a版,32位windows 7系统模拟此程序时第一句出现错误,不知道是什么原因。第一次学习使用MATLAB,希望老师们能帮助,谢谢您们。

function Varargout=mygui_1002(varargin)

gui_Singleton=1;

gui_State=struct('gui Name',   mfilename,…

'gui_Singleton',  gui_Singleton,…

`gui_OpeningFcn',@mygui_1002_ OpeningFcn,…

'gui_OutputFcn',@mygui_1002_OutputFcn,…

'gui_LayoutFcn',[],…

'gui_Callback',[]);

if nargin&&ischar(varargin{1})

gui_State.gui_Callback=str2func(varargin{1});

end

if nargout

[varargout{1:nargout}]=gui_mainfcn(gui_State, varargin{:});

else

gui_mainfcn(gui_State, varargin{:});

end

function mygui_1002_OpeningFcn(hObject, eventdata,handles, varargin)

set(handles.L_edit,'String',550);

set(handles.Z_edit,'String',1.5);

set(handles.A_edit,'String',0.1);

handles.output=hObject;

guidata(hObject, handles);

function varargout=mygui_1002_OutputFcn(hObject, eventdata, handles)

varargout{1}=handles.output;

function draw_pushbutton_Callback(hObject, eventdata, handles)

Lambda=str2num(get(handles.L_edit,'String'));

Lambda=Lambda*1e-9;

a=str2num(get(handles.A_edit,'String'));

a=a*0.001;

Z=str2num(get(handles.Z_edit,'String'));

ym=8*Lambda*Z/a;

Ny=71;

ys=linspace(-ym,ym,Ny);

NP=71;

yP=linspace(-a/2,a/2,NP);

for j=1:Ny

L=sqrt((y(j)-yP).^2+Z.^2);

Phi=2*pi.*(L-Z)./Lambda;

SumCos=sum(cos(Phi));

SumSin=sum(sin(Phi));

B(j)=(SumCos^2+SumSin^2)/NP^2;

end

plot(y,B,'*',y,B);grid

axis([-ym,ym,0.0,1.0]);

title('衍射光强图’);

xlabel('y(m)'); ylabel('I/I0');

set(gcf,'color','w')

function close_pushbutton_Callback(hObject, eventdata, handles)

close

function L_edit_Callback(hObject,eventdata,handles)

function L_edit_CreateFcn(hObject,eventdata,handles)

if ispc&&isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

elld

function A_edit_Callback(hObject,eventdata,handles)

function A_edit_CreateFcn(hObject,eventdata,handles)

if ispc&&isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function Z_edit_Callback(hObject,eventdata,handles)

function Z_edit_CreateFcn(hObject,eventdata,handles)

if ispc&&isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
单缝衍射是指线通过一个狭窄的缝隙后在屏幕上形成干涉和衍射现象。根据引用和引用,可以利用MATLAB进行单缝衍射模拟和仿真。 根据引用所提到的文章,作者使用MATLAB进行了单缝夫琅禾费衍射现象的模拟。该文章中给出了仿真的具体步骤和结果,并且作者在MATLAB中进行了图形用户界面的设计,提供了交互式的单缝衍射仿真界面。这样的仿真能够很好地结合理论和实验,具有一定的应用价值。 此外,根据引用所提到的代码,可以使用MATLAB的linspace函数来生成一个范围内的角度值。在单缝衍射中,观测范围的设定对于衍射图案的分析和研究非常重要。 总结起来,单缝衍射可以利用MATLAB进行模拟和仿真,通过相关代码和图形用户界面实现对单缝衍射模拟和可视化。这样的仿真有助于理论和实验的结合,进一步研究和了解单缝衍射现象。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [【学】基于matlab模拟单缝夫琅禾费衍射](https://blog.csdn.net/matlab_dingdang/article/details/126968587)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值