我使用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