用matlab仿真杨氏干涉,基于matlab光学干涉仿真
一内容介绍根据光的双缝干涉实验理论,利用矩阵实验室编写程序对双缝干涉实验进行模拟,绘制出双缝干涉的图样和光强分布曲线,并且同步计算出相应的条纹间距和对比度,直观地展现了单色光的双缝干涉这一物理现象,实验结果与实际计算结果一致,为双缝干涉的理论与实验提供了有效的支持。
2部分代码函数varargout=ganshe(varargin)
% GANSHE M-file for ganshe.fig
%甘舍自己创建一个新的甘舍或提升现有的
%单例* .
%
% H=甘舍将句柄返回给新的甘舍或将句柄返回给
%现有的单例*。
%
% GANSHE(CALLBACK ,hObject,eventData,handles,)调用本地
%函数在甘舍中名为回电.用给定的输入参数初始化m .
%
%甘舍(属性,值,)创建一个新的甘舍或引发
%现有单例*。从左边开始,属性值对是
%在调用甘舍_开放cn之前应用于图形用户界面.一;一个
%无法识别的属性名或无效值使属性应用程序
%停止。所有输入都通过变长度输入宗量传递给甘舍_开放cn .
%
% *请参见指南的"工具"菜单上的图像使用者界面选项。选择图像使用者界面只允许一个
要运行的%实例(单例)”.
%
%请参阅:指南、GUIDATA、GUIHANDLES
%编辑以上文字修改回复帮助干社
%上次由指南v2.5修改2014年6月21日11:31:04
%开始初始化代码-不要编辑
GUI _ Singleton=1;
gui_State=struct(gui_Name ,mfilename,
gui_Singleton ,gui_Singleton,
gui _ OpeningFcn ,@ ganshe _ OpeningFcn,
gui_OutputFcn ,@ganshe_OutputFcn,
gui_LayoutFcn ,[],
gui_Callback ,[]);
if nargin ischar(varargin{1})
GUI _ state。GUI _ Callback=str 2 func(vara rgin { 1 });
目标
如果输出参数的数目
[varargout { 1:nargout }]=GUI _ mainfcn(GUI _ State,vara gin {:});
其他
gui_mainfcn(gui_State,vara rgin {:});
目标
%结束初始化代码-不要编辑
% -在甘舍可见之前执行。
函数ganshe_OpeningFcn(hObject,eventdata,handles,varargin)
%此函数没有输出参数,请参见输出Fcn .
% h对象句柄到数字
% eventdata保留-将在矩阵实验室的未来版本中定义
%句柄包含句柄和用户数据的结构(请参见GUIDATA)
% vara gin gan she的命令行参数(请参见瓦拉金酒)
%为甘舍选择默认命令行输出
handles.output=hObject
%更新句柄结构
guidata(hObject,handles);
%等待使甘舍等待用户响应(参见UIRESUME)
% ui等待(句柄。图1);
% -此函数的输出返回到命令行。
函数varargout=ganshe _ output fcn(h对象,事件数据,句柄)
% varargout单元格数组,用于返回输出参数(请参见VARARGOUT);
% h对象句柄到数字
% eventdata保留-将在矩阵实验室的未来版本中定义
%句柄包含句柄和用户数据的结构(请参见GUIDATA)
%从句柄结构获取默认命令行输出
varargout { 1 }=handles.output
函数edit1_Callback(hObject,eventdata,handles)
% h编辑一的对象句柄(见GCBO)
% eventdata保留-将在矩阵实验室的未来版本中定义
%句柄包含句柄和用户数据的结构(请参见GUIDATA)
% Hints: get(hObject, String )以文本形式返回编辑1的内容
% str 2 double(get(ho object, String ))以双精度形式返回编辑1的内容
% -在设置所有属性后,在对象创建期间执行。
函数edit1_CreateFcn(hObject,eventdata,handles)
% h编辑一的对象句柄(见GCBO)
% eventdata保留-将在矩阵实验室的未来版本中定义
%句柄为空-调用所有创建Fcns后才创建句柄
%提示:在Windows操作系统上,编辑控件通常有一个白色背景。
%参见上海跨国采购中心有限公司和计算机。
如果ispc相等(get(ho object, BackgroundColor ),get(0, defaultUicontrolBackgroundColor ))
set(hObject, BackgroundColor , white );
目标
函数edit2_Callback(hObject,eventdata,handles)
% h要编辑的对象句柄2(请参见GCBO)
% eventdata保留-将在矩阵实验室的未来版本中定义
%句柄包含句柄和用户数据的结构(请参见GUIDATA)
% Hints: get(hObject, String )以文本形式返回第二版的内容
% str 2 double(get(ho object, String ))以双精度形式返回第二版的内容
% -在设置所有属性后,在对象创建期间执行。
函数edit2_CreateFcn(hObject,eventdata,handles)
% h要编辑的对象句柄2(请参见GCBO)
% eventdata保留-将在矩阵实验室的未来版本中定义
%句柄为空-调用所有创建Fcns后才创建句柄
%提示:在Windows操作系统上,编辑控件通常有一个白色背景。
%参见上海跨国采购中心有限公司和计算机。
如果ispc相等(get(ho object, BackgroundColor ),get(0, defaultUicontrolBackgroundColor ))
set(hObject, BackgroundColor , white );
目标
函数edit3_Callback(hObject,eventdata,handles)
% h要编辑的对象句柄3(请参见GCBO)
% eventdata保留-将在矩阵实验室的未来版本中定义
%句柄包含句柄和用户数据的结构(请参见GUIDATA)
% Hints: get(hObject, String )以文本形式返回第三版的内容
% str 2 double(get(ho object, String ))以双精度形式返回第三版的内容
% -在设置所有属性后,在对象创建期间执行。
函数edit3_CreateFcn(hObject,eventdata,handles)
% h要编辑的对象句柄3(请参见GCBO)
% eventdata保留-将在矩阵实验室的未来版本中定义
%句柄为空-调用所有创建Fcns后才创建句柄
%提示:在Windows操作系统上,编辑控件通常有一个白色背景。
%参见上海跨国采购中心有限公司和计算机。
如果ispc相等(get(ho object, BackgroundColor ),get(0, defaultUicontrolBackgroundColor ))
set(hObject, BackgroundColor , white );
目标
函数edit4_Callback(hObject,eventdata,handles)
% h要编辑的对象句柄4(请参见GCBO)
% eventdata保留-将在矩阵实验室的未来版本中定义
%句柄包含句柄和用户数据的结构(请参见GUIDATA)
% Hints: get(hObject, String )以文本形式返回第四版的内容
% str 2 double(get(ho object, String ))以双精度形式返回第四版的内容
% -在设置所有属性后,在对象创建期间执行。
函数edit4_CreateFcn(hObject,eventdata,handles)
% h要编辑的对象句柄4(请参见GCBO)
% eventdata保留-将在矩阵实验室的未来版本中定义
%句柄为空-调用所有创建Fcns后才创建句柄
%提示:在Windows操作系统上,编辑控件通常有一个白色背景。
%参见上海跨国采购中心有限公司和计算机。
如果ispc相等(get(ho object, BackgroundColor ),get(0, defaultUicontrolBackgroundColor ))
set(hObject, BackgroundColor , white );
% -在设置所有属性后,在对象创建期间执行。
函数edit6_CreateFcn(hObject,eventdata,handles)
% h要编辑的对象句柄6(请参见GCBO)
% eventdata保留-将在矩阵实验室的未来版本中定义
%句柄为空-调用所有创建Fcns后才创建句柄
%提示:在Windows操作系统上,编辑控件通常有一个白色背景。
%参见上海跨国采购中心有限公司和计算机。
如果ispc相等(get(ho object, BackgroundColor ),get(0, defaultUicontrolBackgroundColor ))
set(hObject, BackgroundColor , white );
目标
函数edit7_Callback(hObject,eventdata,handles)
% h要编辑的对象句柄7(请参见GCBO)
% eventdata保留-将在矩阵实验室的未来版本中定义
%句柄包含句柄和用户数据的结构(请参见GUIDATA)
% Hints: get(hObject, String )以文本形式返回第7版的内容
% str 2 double(get(ho object, String ))以双精度形式返回第7版的内容
% -在设置所有属性后,在对象创建期间执行。
函数edit7_CreateFcn(hObject,eventdata,handles)
% h要编辑的对象句柄7(请参见GCBO)
% eventdata保留-将在矩阵实验室的未来版本中定义
%句柄为空-调用所有创建Fcns后才创建句柄
%提示:在Windows操作系统上,编辑控件通常有一个白色背景。
%参见上海跨国采购中心有限公司和计算机。
如果ispc相等(get(ho object, BackgroundColor ),get(0, defaultUicontrolBackgroundColor ))
set(hObject, BackgroundColor , white );
目标
函数edit8_Callback(hObject,eventdata,handles)
% h要编辑的对象句柄8(请参见GCBO)
% eventdata保留-将在矩阵实验室的未来版本中定义
%句柄包含句柄和用户数据的结构(请参见GUIDATA)
% Hints: get(hObject, String )以文本形式返回版本8的内容
% str 2 double(get(ho object, String ))以双精度形式返回版本8的内容
% -在设置所有属性后,在对象创建期间执行。
函数edit8_CreateFcn(hObject,eventdata,handles)
% h要编辑的对象句柄8(请参见GCBO)
% eventdata保留-将在矩阵实验室的未来版本中定义
%句柄为空-调用所有创建Fcns后才创建句柄
%提示:在Windows操作系统上,编辑控件通常有一个白色背景。
%参见上海跨国采购中心有限公司和计算机。
如果ispc相等(get(ho object, BackgroundColor ),get(0, defaultUicontrolBackgroundColor ))
set(hObject, BackgroundColor , white );
目标
函数edit9_Callback(hObject,eventdata,handles)
% h要编辑的对象句柄9(请参见GCBO)
% eventdata保留-将在矩阵实验室的未来版本中定义
%句柄包含句柄和用户数据的结构(请参见GUIDATA)
% Hints: get(hObject, String )以文本形式返回第9版的内容
% str 2 double(get(ho object, String ))以双精度形式返回第9版的内容
% -在设置所有属性后,在对象创建期间执行。
函数edit9_CreateFcn(hObject,eventdata,handles)
% h要编辑的对象句柄9(请参见GCBO)
% eventdata保留-将在矩阵实验室的未来版本中定义
%句柄为空-调用所有创建Fcns后才创建句柄
%提示:在Windows操作系统上,编辑控件通常有一个白色背景。
%参见上海跨国采购中心有限公司和计算机。
如果ispc相等(get(ho object, BackgroundColor ),get(0, defaultUicontrolBackgroundColor ))
set(hObject, BackgroundColor , white );
目标
% -在按下按钮一时执行。
函数button1_Callback(hObject,eventdata,handles)
% h对象句柄到按钮1(见GCBO)
% eventdata保留-将在矩阵实验室的未来版本中定义
%句柄包含句柄和用户数据的结构(请参见GUIDATA)
%读入实验参数
lambda=str 2 num(get(句柄。编辑1,字符串)* 1e-9;%读入波长
d=str2num(get(handles.edit2, string )* 1e-3;%读入孔距
D=str2num(get(handles.edit3, string ));%读入观察屏距离
%读入观察范围参数
xa=str2num(get(handles.edit4, string ));%最小的横坐标值
xb=str2num(get(handles.edit5, string ));%最大的横坐标值
n1=str2num(get(handles.edit6, string ));%x方向等分份数
ya=str2num(get(handles.edit7, string ));%最小的纵坐标值
yb=str2num(get(handles.edit8, string ));%最大的纵坐标值
n2=str2num(get(handles.edit9, string ));%y方向等分份数
k=2 */;%计算波数
x=linspace(xa,xb,n1);%x坐标
y=linspace(ya,yb,N2);%y坐标
[x,y]=meshgrid(x,y);
r1=sqrt((x-d/2)).^2 y.^2 d^2);
r2=sqrt((x d/2).^2 y.^2 d^2);
I=(cos(k*r1)./r1 cos(k*r2)./r2).^2 (sin(k*r1)./r1 sin(k*r2)./r2).^2;
I=I/(max(max(I)));
I=I * 255
轴(手柄。轴1)
x=linspace(xa,xb,n1);
y=linspace(ya,yb,N2);
图像(x,y,I)
色彩映射表(灰色(255))
xlabel(x (m))
ylabel(y (m))
标题(杨氏双孔干涉条纹)
% -在按下按钮2时执行。
函数button2_Callback(hObject,eventdata,handles)
% h对象句柄到按钮2(见GCBO)
% eventdata保留-将在矩阵实验室的未来版本中定义
%句柄包含句柄和用户数据的结构(请参见GUIDATA)
% -在按下按钮3时执行。
函数button3_Callback(hObject,eventdata,handles)
% h对象处理按钮3(见GCBO)
% eventdata保留-将在矩阵实验室的未来版本中定义
%句柄包含句柄和用户数据的结构(请参见GUIDATA)
3运行结果
四参考文献[1]盛虹。基于矩阵实验室的杨氏双缝干涉实验模拟[J]的缩写.河南科学, 2010, 28(6):3.
博主:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机、雷达通信、无线传感器等领域的Matlab仿真。相关matlab代码问题可以私信交流。有些理论引用自网络文献。如有侵权,联系博主删除。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。