MATLAB结课论文.docx
- 文档编号:30647647
- 上传时间:2023-08-18
- 格式:DOCX
- 页数:20
- 大小:311.05KB
MATLAB结课论文.docx
《MATLAB结课论文.docx》由会员分享,可在线阅读,更多相关《MATLAB结课论文.docx(20页珍藏版)》请在冰豆网上搜索。
MATLAB结课论文
MATLAB中的图形用户界面(GUI)
一、MAYLAB简介
MATLAB是一种高效能的、用于科学和技术计算的计算机语言。
它将计算、可视化和编程等功能集于一个易于使用的环境。
MATLAB是一个交互式系统(写程序与执行命令同步),其基本的数据元素是没有维数限制的阵列,因此采用MATLAB编制包含矩阵和向量问题的程序时比采用只支持标量和非交互式的编程C或FORTAN语言更加方便。
MATLAB的全名是MatrixLaboratory,意思是矩阵实验室,是由MathWorks公司推出的
二、MATLAB语言的优点:
(1)简单易学;
(2)代码短小高效,只需熟悉算法特点、使用场合、函数调用格式和参数意义,不必花大量时间纠缠具体算法;
(3)计算功能非常强大;
(4)强大的图形表达功能;
(5)可扩展性能。
三、MATLAB的重要特色:
它有一套程序扩展系统和一组称之为工具箱(toolbox)的特殊应用子程序。
工具箱是MATLAB函数的子程序库,每一个工具箱都是为某一类学科专业和应用而定制的,主要包括信号处理、控制系统、神经网络、模糊逻辑、小波分析和系统仿真等方面的应用。
四、MAYLAB中的图形用户界面(GUI)
GUI(GraphicalUserInterface)图形用户界面,是在图形界面下安排显示与用户交互的组件元素,用户可以只通过键盘、鼠标和前台界面下的组件发生交互,而所有的计算、绘图等内部操作都封装在内部,提高了终端用户使用MATLAB程序的易用性。
图形用户界面设计工具的启动方式:
1.命令方式
图形用户界面GUI设计工具的启动命令为guide,格式为:
(1)guide
功能:
启动GUI设计工具,并建立名字为untitled.fig的图形用户界面。
(2)guidefilename
功能:
启动GUI设计工具,并打开已建立的图形用户界面filename。
在Matlab的主窗口中,选择File菜单中的New菜单项,再选择其中的GUI命令,就会显示GUI的设计模板。
点击savenewfigureas:
选择保存地址
功能介绍:
1、BlankGUI(Default):
使用空白模板创建GUI
2、GUIwithUicontrols:
使用带有组件的模板创建GUI
3、GUIwithAxesandMenu:
使用带有图形和菜单的模板创建GUI
4、ModalQuestionDialog:
使用对话框模板创建GUI
选择BlankGUI(Default)出现下图界面:
图形用户界面GUI设计窗口由菜单栏、工具栏、控件工具栏以及图形对象设计区等4个功能区组成。
各按钮功能:
选择:
按钮(PushButton)控件 、静态文本(StaticText)、编辑框(EditText)控件、滚动条(Slider)控件,双击各控件并命名,最后保存,结果为下图:
接着点击Editor出现相应的程序文本,并输入程序,保存后,点击相应的控件出来相应的图形:
程序:
functionvarargout=untitled(varargin):
%UNTITLEDMATLABcodeforuntitled.fig
%UNTITLED,byitself,createsanewUNTITLEDorraisestheexisting
%singleton*.
%
%H=UNTITLEDreturnsthehandletoanewUNTITLEDorthehandleto
%theexistingsingleton*.
%
%UNTITLED('CALLBACK',hObject,eventData,handles,...)callsthelocal
%functionnamedCALLBACKinUNTITLED.Mwiththegiveninputarguments.
%
%UNTITLED('Property','Value',...)createsanewUNTITLEDorraisesthe
%existingsingleton*.Startingfromtheleft,propertyvaluepairsare
%appliedtotheGUIbeforeuntitled_OpeningFcngetscalled.An
%unrecognizedpropertynameorinvalidvaluemakespropertyapplication
%stop.Allinputsarepassedtountitled_OpeningFcnviavarargin.
%
%*SeeGUIOptionsonGUIDE'sToolsmenu.Choose"GUIallowsonlyone
%instancetorun(singleton)".
%
%Seealso:
GUIDE,GUIDATA,GUIHANDLES
%Edittheabovetexttomodifytheresponsetohelpuntitled
%LastModifiedbyGUIDEv2.523-May-201209:
31:
22
%Begininitializationcode-DONOTEDIT
gui_Singleton=1;
gui_State=struct('gui_Name',mfilename,...
'gui_Singleton',gui_Singleton,...
'gui_OpeningFcn',@untitled_OpeningFcn,...
'gui_OutputFcn',@untitled_OutputFcn,...
'gui_LayoutFcn',[],...
'gui_Callback',[]);
ifnargin&&ischar(varargin{1})
gui_State.gui_Callback=str2func(varargin{1});
end
ifnargout
[varargout{1:
nargout}]=gui_mainfcn(gui_State,varargin{:
});
else
gui_mainfcn(gui_State,varargin{:
});
end
%Endinitializationcode-DONOTEDIT
%---Executesjustbeforeuntitledismadevisible.
functionuntitled_OpeningFcn(hObject,eventdata,handles,varargin)
%Thisfunctionhasnooutputargs,seeOutputFcn.
%hObjecthandletofigure
%eventdatareserved-tobedefinedinafutureversionofMATLAB
%handlesstructurewithhandlesanduserdata(seeGUIDATA)
%varargincommandlineargumentstountitled(seeVARARGIN)
%Choosedefaultcommandlineoutputforuntitled
handles.output=hObject;
%Updatehandlesstructure
guidata(hObject,handles);
%UIWAITmakesuntitledwaitforuserresponse(seeUIRESUME)
%uiwait(handles.figure1);
%---Outputsfromthisfunctionarereturnedtothecommandline.
functionvarargout=untitled_OutputFcn(hObject,eventdata,handles)
%varargoutcellarrayforreturningoutputargs(seeVARARGOUT);
%hObjecthandletofigure
%eventdatareserved-tobedefinedinafutureversionofMATLAB
%handlesstructurewithhandlesanduserdata(seeGUIDATA)
%Getdefaultcommandlineoutputfromhandlesstructure
varargout{1}=handles.output;
functionsliderpinlv_Callback(hObject,eventdata,handles)
globalp1;
globalp2;
globalp3;
globalp4;
j=get(handles.sliderfuzhi,'value');%获取幅值滚动条的值,并且赋给j
k=get(handles.sliderpinlv,'value');%获取频率滚动条的值,并且赋给k
l=get(handles.sliderxiangwei,'value');%获取相位滚动条的值,并且赋给l
set(handles.editfuzhi,'string',num2str(j));%修改editfuzhi的值为滚动条当前的值
set(handles.editpinlv,'string',num2str(k));
set(handles.editxiangwei,'string',num2str(l));
A=str2num(get(handles.editfuzhi,'string'));%获取幅值选择框的值,并且赋给A
f=str2num(get(handles.editpinlv,'string'));
P=str2num(get(handles.editxiangwei,'string'));
while1%一直判断,遇到有按键就执行,然后退出。
ifp1==1%如果选择了正弦波
t=0:
0.001:
8*pi;
y=A*sin(2*pi*f*t+P*2*pi);
plot(t,y);
gridon;
axis([0,8*pi,-1.2,1.2]);
end
ifp2==1%如果选择了方波
t=0:
0.001:
6;y=A*square(2*pi*f*t+4*P/f,50);
plot(t,y);
gridon;
axis([0,6,-1.2,1.2]);
end
ifp3==1%如果选择了锯齿波
t=0:
0.001:
20;y=A*sawtooth(pi*f*t+4*P/f,1);
plot(t,y);
gridon;
axis([0,20,-1.2,1.2]);
end
ifp4==1%如果选择了三角波
t=0:
0.001:
20;y=A*sawtooth(pi*f*t+4*P/f,0.5);
plot(t,y);
gridon;
axis([0,20,-1.2,1.2]);
end
break;
end
functionsliderpinlv_CreateFcn(hObject,eventdata,handles)
%Hint:
slidercontrolsusuallyhavealightgraybackground.
ifisequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor',[.9.9.9]);
end
functionsliderfuzhi_Callback(hObject,eventdata,handles)
globalp1;
globalp2;
globalp3;
globalp4;
j=get(handles.sliderfuzhi,'value');%获取幅值滚动条的值,并且赋给j
k=get(handles.sliderpinlv,'value');%获取频率滚动条的值,并且赋给k
l=get(handles.sliderxiangwei,'value');%获取相位滚动条的值,并且赋给l
set(handles.editfuzhi,'string',num2str(j));%修改editfuzhi的值为滚动条当前的值
set(handles.editpinlv,'string',num2str(k));
set(handles.editxiangwei,'string',num2str(l));
A=str2num(get(handles.editfuzhi,'string'));%获取幅值选择框的值,并且赋给A
f=str2num(get(handles.editpinlv,'string'));
P=str2num(get(handles.editxiangwei,'string'));
while1%一直判断,遇到有按键就执行,然后退出。
ifp1==1%如果选择了正弦波
t=0:
0.001:
8*pi;
y=A*sin(2*pi*f*t+P*2*pi);
plot(t,y);
gridon;
axis([0,8*pi,-1.2,1.2]);
end
ifp2==1%如果选择了方波
t=0:
0.001:
6;y=A*square(2*pi*f*t+4*P/f,50);
plot(t,y);
gridon;
axis([0,6,-1.2,1.2]);
end
ifp3==1%如果选择了锯齿波
t=0:
0.001:
20;y=A*sawtooth(pi*f*t+4*P/f,1);
plot(t,y);
gridon;
axis([0,20,-1.2,1.2]);
end
ifp4==1%如果选择了三角波
t=0:
0.001:
20;y=A*sawtooth(pi*f*t+4*P/f,0.5);
plot(t,y);
gridon;
axis([0,20,-1.2,1.2]);
end
break;
end
functionsliderfuzhi_CreateFcn(hObject,eventdata,handles)
%Hint:
slidercontrolsusuallyhavealightgraybackground.
ifisequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor',[.9.9.9]);
end
functionsliderxiangwei_Callback(hObject,eventdata,handles)
globalp1;
globalp2;
globalp3;
globalp4;
j=get(handles.sliderfuzhi,'value');%获取幅值滚动条的值,并且赋给j
k=get(handles.sliderpinlv,'value');%获取频率滚动条的值,并且赋给k
l=get(handles.sliderxiangwei,'value');%获取相位滚动条的值,并且赋给l
set(handles.editfuzhi,'string',num2str(j));%修改editfuzhi的值为滚动条当前的值
set(handles.editpinlv,'string',num2str(k));
set(handles.editxiangwei,'string',num2str(l));
A=str2num(get(handles.editfuzhi,'string'));%获取幅值选择框的值,并且赋给A
f=str2num(get(handles.editpinlv,'string'));
P=str2num(get(handles.editxiangwei,'string'));
while1%一直判断,遇到有按键就执行,然后退出。
ifp1==1%如果选择了正弦波
t=0:
0.001:
8*pi;
y=A*sin(2*pi*f*t+P*2*pi);
plot(t,y);
gridon;
axis([0,8*pi,-1.2,1.2]);
end
ifp2==1%如果选择了方波
t=0:
0.001:
6;y=A*square(2*pi*f*t+4*P/f,50);
plot(t,y);
gridon;
axis([0,6,-1.2,1.2]);
end
ifp3==1%如果选择了锯齿波
t=0:
0.001:
20;y=A*sawtooth(pi*f*t+4*P/f,1);
plot(t,y);
gridon;
axis([0,20,-1.2,1.2]);
end
ifp4==1%如果选择了三角波
t=0:
0.001:
20;y=A*sawtooth(pi*f*t+4*P/f,0.5);
plot(t,y);
gridon;
axis([0,20,-1.2,1.2]);
end
break;
end
functionsliderxiangwei_CreateFcn(hObject,eventdata,handles)
%Hint:
slidercontrolsusuallyhavealightgraybackground.
ifisequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor',[.9.9.9]);
end
functioneditfuzhi_Callback(hObject,eventdata,handles)
functioneditfuzhi_CreateFcn(hObject,eventdata,handles)
%Hint:
editcontrolsusuallyhaveawhitebackgroundonWindows.
%SeeISPCandCOMPUTER.
ifispc&&isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
(1)正弦按钮的Callback函数:
functionpushbuttonZHENGXIAN_Callback(hObject,eventdata,handles)
globalp1;%GLOBALDefineglobalvariable.
globalp2;
globalp3;
globalp4;
p2=0;
p3=0;
p4=0;
p1=get(handles.pushbuttonZHENGXIAN,'value');%获取正弦按钮的当前值并赋给p1
whilep1==1
j=get(handles.sliderfuzhi,'value');%获取幅值滚动条的值,并且赋给j
k=get(handles.sliderpinlv,'value');
l=get(handles.sliderxiangwei,'value');
set(handles.editfuzhi,'string',num2str(j));%修改editfuzhi的值为滚动条当前的值
set(handles.editpinlv,'string',num2str(k));
set(handles.editxiangwei,'string',num2str(l));
A=str2num(get(handles.editfuzhi,'string'));%获取幅值选择框的值,并且赋给A
f=str2num(get(handles.editpinlv,'string'));
P=str2num(get(handles.editxiangwei,'string'));
t=0:
0.001:
8*pi;
y=A*sin(2*pi*f*t+P*2*pi);
plot(t,y);
axis([0,8*pi,-1.2,1.2]);
gridon;
break;
end
(2)方波按钮的Callback函数:
functionpushbutton2FANGBO_Callback(hObject,eventdata,handles)
globalp1;
globalp2;
globalp3;
globalp4;
p1=0;
p3=0;
p4=0;
p2=get(handles.pushbutton2FANGBO,'value');
j=get(handles.sliderfuzhi,'value');
k=get(handles.sliderpinlv,'value');
l=get(handles.sliderxiangwei,'value');
set(handles.editfuzhi,'string',num2str(j));
set(handles.editpinlv,'string',num2str(k));
set(handles.editxiangwei,'string',num2str(l));
A=str2num(get(handles.editfuzhi,'string'));
f=str2num(get(handles.editpinlv,'string'));
P=str2num(get(handles.editxiangwei,'string'));
t=0:
0.001:
6;
y=A*square(2*pi*f*t+4*P/f,50);
plot(t,y);
gridon;
axis([0,6,-1.2,1.2]);
(3)三角波按钮的Callback函数:
functionpushbutton4SANJIAO_Callback(hObject,eventda
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 论文