《MATLAB课程设计》报告
设计题目: 可视化用户界面设计 学生姓名: 学生学号: 2010 专业班级: 10级光信息 答辩时间: 指导教师: 冯明库
广东技术师范学院 电子与信息学院
一、设计目的及意义
学会综合地运用MATLAB工具箱设计出可以绘制一般常见图像的GUI程序。同时,加深对MATLAB的绘制图像功能的认识和设计GUI程序的一般方法的掌握。
二、设计任务及指标
设计一个GUI界面程序,可以根据不同参数的输入来绘制不同的螺旋线、内摆线以及圆环图像。
熟悉和掌握MATLAB 程序设计方法;掌握MATLAB GUI 程序设计;学习和熟悉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属性设置为Choose Data of Graphics。
3。3、编写代码,实现控件功能。
右击任意图形对象,在弹出的快捷菜单中选择View CallBacks子菜单,再选择CallBack命令,将自动打开一个M文件,这时在各控件的回调函数区输入相应的程序代码。
3。3。1.用于创建绘图数据的代码:
% —-— Executes just before ex8_5 is made visible。
function ex8_5_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn。 % hObject handle to figure
% eventdata reserved — to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to ex8_5 (see VARARGIN) 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按钮编写响应函数代码如下:
% ——— Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) mesh(handles.current_data)
3。3.3.为Surf按钮编写响应函数代码如下:
% ——— Executes on button press in pushbutton2。
function pushbutton2_Callback(hObject, eventdata, handles) % hObject handle to pushbutton2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) surf(handles。current_data)
3.3。4.为Contour3按钮编写响应函数代码如下:
% ——- Executes on button press in pushbutton3。
function pushbutton3_Callback(hObject, eventdata, handles) % hObject handle to pushbutton3 (see GCBO)
% eventdata reserved — to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) contour3(handles。current_data)
3.3。5.为弹出式菜单编写响应函数代码如下:
% --— Executes on selection change in popupmenu1.
function popupmenu1_Callback(hObject, eventdata, handles) % hObject handle to popupmenu1 (see GCBO)
% eventdata reserved — to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) val=get(hObject,'Value') str=get(hObject,’String’); switch str{val} case ’peaks’
handles。current_data=handles.peaks; case ’membrane’
handles。current_data=handles。membrane; case 'sinc’
handles.current_data=handles。sinc; end
guidata(hObject,handles)
四、结论及分析
(1)。程序调试及各运行界面:
图一
图二
图三
五、设计体会
MATLAB不仅具有强大的数值运算和符号计算功能,同时还具有非常强大的二维和三维绘图功能,尤其擅长于各种科算结果的可视化界面的展示。计算的可视化可以将杂乱的数据通过图形表示来从中观察出其内在的关系。
错误!由于某些版本的MATLAB可能与电脑不兼容,所以在安装MATLAB时应该
注意设置好电脑对此软件的兼容性。
错误!由于MATLAB函数众多,而且课本上提供的都是最基本的函数功能,自己
不仅要去图书馆借这方面的专业书籍来阅读,而且许多函数的编写都要用到C 语言,对C语言也有一定的要求。
3通过本次课程设计,使自己对MATLAB GUI设计流程有了比较深刻的体会,○
同时也了解了一般软件设计的过程。在设计过程中碰到了很多的问题,通过这些问题,使自己分析问题,解决问题的能力得到了较大的提高。
参考文献:
[1] 刘卫国主编.MATLAB程序设计与应用(第二版).高等教育出版社,2006 [2] 陈垚光 。。。 [等]编著。精通MATLAB GUI设计 .电子工业出版社。2013 [3] 张学敏编著.MATLAB基础及应用.中国电力出版社,2009.