用matlab仿真杨氏干涉,基于matlab光学干涉仿真

  用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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: