.'.《MATLAB课程设计》报告设计题目:可视化用户界面设计学生姓名:学生学号:2010专业班级:10级光信息答辩时间:指导教师:冯明库广东技术师范学院电子与信息学院.'.一、设计目的及意义学会综合地运用MATLAB工具箱设计出可以绘制一般常见图像的GUI程序。同时,加深对MATLAB的绘制图像功能的认识和设计GUI程序的一般方法的掌握。二、设计任务及指标设计一个GUI界面程序,可以根据不同参数的输入来绘制不同的螺旋线、内摆线以及圆环图像。熟悉和掌握MATLAB程序设计方法;掌握MATLABGUI程序设计;学习和熟悉MATLAB工具箱;学会运用MATLAB工具箱绘制常见图像。三、设计过程3.1、打开GUI设计窗口,添加有关控件对象。首先,启动Matlab在命令窗口中输入“guide”,打开GUI设计窗口。然后在用户界面编辑窗口添加3个按钮、一个弹出框和一个静态文本框和一个坐标系(Axes)。3.2、利用属性编辑器,设置图形对象的属性。利用属性编辑器把3个按钮的Position属性的第三和第四个分量设为相同的值,以使3个按钮的宽和高都相等。3个按钮的String属性分别是说明文字Mesh、Surf和Contour3,FontSize属性设为10。弹出框的String属性中输入三个选项:peaks、membrane、sinc。静态文本框的String属性设置为ChooseDataofGraphics。3.3、编写代码,实现控件功能。右击任意图形对象,在弹出的快捷菜单中选择ViewCallBacks子菜单,再选择CallBack命令,将自动打开一个M文件,这时在各控件的回调函数区输入相应的程序代码。3.3.1.用于创建绘图数据的代码:.'.%---Executesjustbeforeex8_5ismadevisible.functionex8_5_OpeningFcn(hObject,eventdata,handles,varargin)%Thisfunctionhasnooutputargs,seeOutputFcn.%hObjecthandletofigure%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)%varargincommandlineargumentstoex8_5(seeVARARGIN)handles.peaks=peaks(35);handles.membrane=membrane(5);[x,y]=meshgrid(-8:0.5:8);r=sqrt(x.^2+y.^2);sinc=sin(r)./(r+eps);handles.sinc=sinc;handles.current_data=handles.peaks;3.3.2.为Mesh按钮编写响应函数代码如下:%---Executesonbuttonpressinpushbutton1.functionpushbutton1_Callback(hObject,eventdata,handles)%hObjecthandletopushbutton1(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)mesh(handles.current_data)3.3.3.为Surf按钮编写响应函数代码如下:%---Executesonbuttonpressinpushbutton2.functionpushbutton2_Callback(hObject,eventdata,handles)%hObjecthandletopushbutton2(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)surf(handles.current_data)3.3.4.为Contour3按钮编写响应函数代码如下:%---Executesonbuttonpressinpushbutton3.functionpushbutton3_Callback(hObject,eventdata,handles)%hObjecthandletopushbutton3(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)contour3(handles.current_data).'.3.3.5.为弹出式菜单编写响应函数代码如下:%---Executesonselectionchangeinpopupmenu1.functionpopupmenu1_Callback(hObject,eventdata,handles)%hObjecthandletopopupmenu1(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)val=get(hObject,'Value')str=get(hObject,'String');switchstr{val}case'peaks'handles.current_data=handles.peaks;case'membrane'handles.current_data=handles.membrane;case'sinc'handles.current_data=handles.sinc;endguidata(hObject,handles)四、结论及分析(1).程序调试及各运行界面:.'.图一图二.'.图三五、设计体会MATLAB不仅具有强大的数值运算和符号计算功能,同时还具有非常强大的二维和三维绘图功能,尤其擅长于各种科学运算结果的可视化界面的展示。计算的可视化可以将杂乱的数据通过图形表示来从中观察出其内在的关系。○1由于某些版本的MATLAB可能与电脑不兼容,所以在安装MATLAB时应该注意设置好电脑对此软件的兼容性。○2由于MATLAB函数众多,而且课本上提供的都是最基本的函数功能,自己不仅要去图书馆借这方面的专业书籍来阅读,而且许多函数的编写都要用到C语言,对C语言也有一定的要求。○3通过本次课程设计,使自己对MATLABGUI设计流程有了比较深刻的体会,同时也了解了一般软件设计的过程。在设计过程中碰到了很多的问题,通过这些问题,使自己分析问题,解决问题的能力得到了较大的提高。.'.参考文献:[1]刘卫国主编.MATLAB程序设计与应用(第二版).高等教育出版社,2006[2]陈垚光...[等]编著.精通MATLABGUI设计.电子工业出版社。2013[3]张学敏编著.MATLAB基础及应用.中国电力出版社,2009.