MATLAB结课论文

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

11MATLAB中的图形用户界面(GUI)一、MAYLAB简介MATLAB是一种高效能的、用于科学和技术计算的计算机语言。它将计算、可视化和编程等功能集于一个易于使用的环境。MATLAB是一个交互式系统(写程序与执行命令同步),其基本的数据元素是没有维数限制的阵列,因此采用MATLAB编制包含矩阵和向量问题的程序时比采用只支持标量和非交互式的编程C或FORTAN语言更加方便。MATLAB的全名是MatrixLaboratory,意思是矩阵实验室,是由MathWorks公司推出的二、MATLAB语言的优点:(1)简单易学;(2)代码短小高效,只需熟悉算法特点、使用场合、函数调用格式和参数意义,不必花大量时间纠缠具体算法;(3)计算功能非常强大;(4)强大的图形表达功能;(5)可扩展性能。三、MATLAB的重要特色:它有一套程序扩展系统和一组称之为工具箱(toolbox)的特殊应用子程序。工具箱是MATLAB函数的子程序库,每一个工具箱都是为某一类学科专业和应用而定制的,主要包括信号处理、控制系统、神经网络、模糊逻辑、小波分析和系统仿真等方面的应用。22四、MAYLAB中的图形用户界面(GUI)GUI(GraphicalUserInterface)图形用户界面,是在图形界面下安排显示与用户交互的组件元素,用户可以只通过键盘、鼠标和前台界面下的组件发生交互,而所有的计算、绘图等内部操作都封装在内部,提高了终端用户使用MATLAB程序的易用性。图形用户界面设计工具的启动方式:1.命令方式图形用户界面GUI设计工具的启动命令为guide,格式为:(1)guide功能:启动GUI设计工具,并建立名字为untitled.fig的图形用户界面。(2)guidefilename功能:启动GUI设计工具,并打开已建立的图形用户界面filename。在Matlab的主窗口中,选择File菜单中的New菜单项,再选择其中的GUI命令,就会显示GUI的设计模板。33点击savenewfigureas:选择保存地址功能介绍:1、BlankGUI(Default):使用空白模板创建GUI2、GUIwithUicontrols:使用带有组件的模板创建GUI3、GUIwithAxesandMenu:使用带有图形和菜单的模板创建GUI4、ModalQuestionDialog:使用对话框模板创建GUI选择BlankGUI(Default)出现下图界面:44图形用户界面GUI设计窗口由菜单栏、工具栏、控件工具栏以及图形对象设计区等4个功能区组成。各按钮功能:选择:按钮(PushButton)控件、静态文本(StaticText)、编辑框(EditText)控件、滚动条(Slider)控件,双击各控件并命名,最后保存,结果为下图:55接着点击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.ChooseGUIallowsonlyone%instancetorun(singleton).%66%Seealso:GUIDE,GUIDATA,GUIHANDLES%Edittheabovetexttomodifytheresponsetohelpuntitled%LastModifiedbyGUIDEv2.523-May-201209:31:22%Begininitializationcode-DONOTEDITgui_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});endifnargout[varargout{1:nargout}]=gui_mainfcn(gui_State,varargin{:});elsegui_mainfcn(gui_State,varargin{:});end%Endinitializationcode-DONOTEDIT%---Executesjustbeforeuntitledismadevisible.functionuntitled_OpeningFcn(hObject,eventdata,handles,varargin)%Thisfunctionhasnooutputargs,seeOutputFcn.%hObjecthandletofigure%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)%varargincommandlineargumentstountitled(seeVARARGIN)%Choosedefaultcommandlineoutputforuntitledhandles.output=hObject;%Updatehandlesstructureguidata(hObject,handles);%UIWAITmakesuntitledwaitforuserresponse(seeUIRESUME)%uiwait(handles.figure1);77%---Outputsfromthisfunctionarereturnedtothecommandline.functionvarargout=untitled_OutputFcn(hObject,eventdata,handles)%varargoutcellarrayforreturningoutputargs(seeVARARGOUT);%hObjecthandletofigure%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)%Getdefaultcommandlineoutputfromhandlesstructurevarargout{1}=handles.output;functionsliderpinlv_Callback(hObject,eventdata,handles)globalp1;globalp2;globalp3;globalp4;j=get(handles.sliderfuzhi,'value');%获取幅值滚动条的值,并且赋给jk=get(handles.sliderpinlv,'value');%获取频率滚动条的值,并且赋给kl=get(handles.sliderxiangwei,'value');%获取相位滚动条的值,并且赋给lset(handles.editfuzhi,'string',num2str(j));%修改editfuzhi的值为滚动条当前的值set(handles.editpinlv,'string',num2str(k));set(handles.editxiangwei,'string',num2str(l));A=str2num(get(handles.editfuzhi,'string'));%获取幅值选择框的值,并且赋给Af=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]);endifp2==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]);endifp3==1%如果选择了锯齿波t=0:0.001:20;y=A*sawtooth(pi*f*t+4*P/f,1);plot(t,y);gridon;88axis([0,20,-1.2,1.2]);endifp4==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]);endbreak;endfunctionsliderpinlv_CreateFcn(hObject,eventdata,handles)%Hint:slidercontrolsusuallyhavealightgraybackground.ifisequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor',[.9.9.9]);endfunctionsliderfuzhi_Callback(hObject,eventdata,handles)globalp1;globalp2;globalp3;globalp4;j=get(handles.sliderfuzhi,'value');%获取幅值滚动条的值,并且赋给jk=get(handles.sliderpinlv,'value');%获取频率滚动条的值,并且赋给kl=get(handles.sliderxiangwei,'value');%获取相位滚动条的值,并且赋给lset(handles.editfuzhi,'string',num2str(j));%修改editfuzhi的值为滚动条当前的值set(handles.editpinlv,'string',num2str

1 / 16
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功