基于matlab的可视化界面制作说明书.doc

上传人:h**** 文档编号:144907 上传时间:2018-07-11 格式:DOC 页数:12 大小:382KB
下载 相关 举报
基于matlab的可视化界面制作说明书.doc_第1页
第1页 / 共12页
基于matlab的可视化界面制作说明书.doc_第2页
第2页 / 共12页
基于matlab的可视化界面制作说明书.doc_第3页
第3页 / 共12页
基于matlab的可视化界面制作说明书.doc_第4页
第4页 / 共12页
基于matlab的可视化界面制作说明书.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

1、 1 MATLAB 可视化设界面计(上) 一个可发布的应用程序通常都需要具备一个友好的图形界面 (比如 , 吃饭 我们开课时或给学生上课而使用课件时 , 吃饭我们一般就会用到可视化界面) 。 洗手 这样用户不需要知道应用程序究竟是怎样执行各种命令的 , 而只需要了解可见界面组件的使用方法用户也不需要知道命令是如何执行 , 只要通过与界面交互就可以使指定行为得以正确执行 。 洗手 MATLAB可视化界面的设计 , 一般有两种方法 , 一是直接通过编辑 M 脚本文件产生 GUI(这个方法就是我们在前面学习过的如何编写 、 beef调用 M 文件) , 二是通过 MATLAB图形用户界面开发环境 G

2、UIDE(Graphical User Interface Development Environment)来形成相应文件 。 洗手 这里只讲述在 GUIDE环境中利用控件实现可视化界面功能 , 不探讨直接通过编辑脚本文件实现可视化界面的方法 。 洗手洗手 MATLAB软件 GUIDE为用户提供了一个方便高效的集成环境 , 所有 GUI支持的用户控件都集成在这个环境中 , 并提供界面外观 、 beef属性和行为响应方式的设置方法 。 洗手 GUIDE将用户保存设计好的 GUI界面保存在一个 FIG资源文件中 , 同时自动生成包含 GUI初始化和组件界面布局控制代码的 M 文件 , 为实现回调函

3、数提供了一个参考框架 。 洗手洗手 下面以一个具体实例来说明 GUIDE的开发使用以下所讲解的关于各控件的使用 , 我们以 MATLAB7.0版本为调试环境 , 如果版本的环境和版本略有不同 ,但基本思想和方法一致 。 洗手 为了方便大家学习 , 吃饭 此处提供二个版本(即文字和视频 , 吃饭 文字的即为下面的叙述 , 吃饭 视频请点击此处 。 洗手 ) 洗手 实例要完成的功能如下 : beef洗手 首先运行 M 文件后 , 吃饭出现一个主画面 洗手2 洗手 当分别点击按钮 “螺旋线 ”、 bef“内摆线 ”、 beef“圆旋转成圆环 ”和 “退出 ”命令按钮时 , 吃饭 分别出现如下列图示的

4、动态 、 bef静态的结果 。 洗手洗手洗手 螺旋线图 洗手3 洗手 内摆线图 洗手4 洗手 圆动成环图 洗手 洗手 退出信息图 洗手 下面看具体的操作步骤 : bef洗手 1)启动 Matlab并进入 GUIDE环境 : bef在 Command Window 下输入 “guide”,进入 GUIDE环境 。 洗手 出现如下图所示的界面(写到这里 , 吃饭 发现文字叙述很繁琐 , 吃饭 但还得写 , 吃饭 要命) 。 洗手 这里 Matlab提供了一个新建空白界面及三个样本界面 , 吃饭 它们分别是 : befGUI with Uicontrols;beefGUI with Axes and

5、 Menu;beefModal Question Dialog; beef当然还有一个标签是用来打开已经编写好的 GUI的 。 洗手 一般来说 , 吃饭 我们会用 Blank GUI, 吃饭 即空白的界面来写自己的东西 。 洗手 进入后 , 吃饭 Matlab就新建了一个 fig文件 (默认名是 untitled.fig), 吃饭 同时得到如下的编辑窗口 : beef洗手5 洗手 从上图我们可以看出Matlab 的 Guide环境可以分为三个部分即菜单栏和工具栏 、 beef用户控件集 、 bef用户界面编辑窗口 。 洗手 菜单栏 , 吃 饭 暂时不作介绍 , 吃饭 我们主要使用用户控件集(其

6、它软件一般称为工具箱) , 吃饭 用户控件集主要有命令按钮( Push Button) 、 bef切换按钮 (Toggle Button)、 beef单选按钮 (Radio Button)、 bef复选框按钮 (Checkbox)、 beef编辑框 (Edit Button)、 bef静态文本框(Static Button) 、 beef滚动杆 (Slider)、 beef列表框 (Listbox)、 beef弹出式菜单 (Pop-menu)、 beef坐标轴 (Axes)等 。 洗手 严格地讲 , 坐标轴 不能算控件的范畴 。 洗手 用户界面编辑窗口用于对受控的图形窗口进行编辑 , 比如添加

7、按钮 、 beef静态文本框等 。 洗手洗手 2)在用户界面编辑窗口添加相应控件(终于可以做具体的事了 , 吃饭 这个就简单了 , 吃饭 哈哈) 洗手 洗手 洗手 洗手 洗手 MATLAB 可视化界面设计(下) 洗手 王林方 发表于 2010-4-2 11:12:00 0洗手 推荐 洗手 首先 , 吃饭 在用户界面编辑窗口添加 4个命令按钮(显示是 OK的用个 PUSH BUTTON) , 吃饭 再 如下图所示添加 5个静态文本框( Static Text) 、 beef5个编辑文本框( Edit Text)和一个坐标系( Axes) 洗手 6 洗手 其次 , 吃饭 按下表设置每个控件的属性值

8、(具体操作是 : bef右击要设置属性的控件 property inspector 命令 在弹出的属性窗口中找到相应的属性名称 将该属性的值修改成自己需要的值) 控件名 属性 属性修改值 PushButton1 FontSize 16 String 螺旋线 Tag pushbuttonLxx PushButton2 FontSize 16 String 内摆线 Tag pushbuttonNBX PushButton3 FontSize 16 String 圆旋转成圆环 Tag pushbuttonCtoC 7 PushButton4 FontSize 16 String 退出 Tag pus

9、hbuttonExit Static Text1 String 大圆半径 Static Text2 String 小圆半径 Static Text3 String 修正值 Static Text4 String 圆半径 Static Text5 String 离转轴的距离 Edit Text1 String 空或设置成一个适定值 , 吃饭 如 10 Tag editBCR Edit Text2 String 空或设置成一个适定值 , 吃饭 如 2 Tag editSCR Edit Text3 String 空或设置成一个适定值 , 吃饭 如 1 Tag editXZZ Edit Text4 S

10、tring 空或设置成一个适定值 , 吃饭 如 4 Tag editCR Edit Text5 String 空或设置成一个适定值 , 吃饭 如 10 Tag editBExit 注 : bef上面控件名称的编号 , 吃饭 比如 1,2之类 , 吃饭 在界面上是没有的 , 吃饭 只是我按照从上到下的次序 , 吃饭 为方便叙述而编写的 。 洗手 洗手 最后 , 吃饭 添加程序(在添加程序前 , 吃饭 最好先将文件保存一下 , 吃饭 比如以 Exp8.m 为文件名保存) , 吃饭 添加程序的常用方法是 : bef单击菜单命令 viewM-file Editor, 吃饭 此时 , 吃饭 得到下面的程

11、序 : bef洗手 function varargout = Exp8(varargin) gui_Singleton = 1;beef gui_State = struct(gui_Name, mfilename, . gui_Singleton, gui_Singleton, . gui_OpeningFcn, Exp8_OpeningFcn, . gui_OutputFcn, Exp8_OutputFcn, . gui_LayoutFcn, , . gui_Callback, );beef if nargin beef end 洗手 if nargout varargout1:nargo

12、ut = gui_mainfcn(gui_State, varargin:);beef else gui_mainfcn(gui_State, varargin:);beef end %上面的是系统初始化代码 , 吃饭 绝对不要去修改它们 。 洗手洗手 8 function Exp8_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject;beef洗手 guidata(hObject, handles);beef %上面的代码 , 吃饭 告诉我们 , 吃饭 一般的用户界面的自己设置的初始化状态应添加在

13、这个函数内 。 洗手洗手 function varargout = Exp8_OutputFcn(hObject, eventdata, handles) varargout1 = handles.output;bef 洗手 % 上 面 的 函 数 返 回 的 量 直 接 到 命 令 窗 口 。 洗 手 洗 手 function pushbuttonLxx_Callback(hObject, eventdata, handles) %上面的函数是点击螺旋线按钮时 , 吃饭 执行的代码 , 吃饭 即可以在此处添加有关螺旋线的程序代码 。 洗手洗手 function pushbuttonNBX_C

14、allback(hObject, eventdata, handles) %上面的函数是点击内摆线按钮时 , 吃饭 执行的代码 , 吃饭 即可以在此处添加有关内摆线的程序代码 。 洗手洗手 % - Executes on button press in pushbuttonExit. function pushbuttonExit_Callback(hObject, eventdata, handles) %上面的函数是点击退出按钮时 , 吃饭 执行的代码 , 吃饭 即可以在此处添加退出时的程序代码 。 洗手洗手 function editBCR_Callback(hObject, event

15、data, handles) % 上面的函数是 editBCR 这个编辑文本按钮回调时 , 吃饭 执 行 的 代 码 。 洗 手 洗 手BigCircleRadial=str2double(get(hObject,String);beef洗手 function editBCR_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,BackgroundColor,white);beef else set(hObject,BackgroundColor,get(0,defaultUicontrolBackgroundColor);be

16、ef end 洗手 %上面的函数用来在程序中设置 editBCR 的属性值 。 洗手洗手 function editSCR_Callback(hObject, eventdata, handles) %上面的函数是 editSCR这个编辑文本按钮回调时 , 吃饭 执行的代码 。 洗手洗手 function editSCR_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,BackgroundColor,white);beef else set(hObject,BackgroundColor,get(0,defaultUicon

17、trolBackgroundColor);beef end 洗手 %上 面的函数用来在程序中设置 editSCR 的属性值 。 洗手洗手 洗手 function editXZZ_Callback(hObject, eventdata, handles) %上面的函数是 editXZZ 这个编辑文本按钮回调时 , 吃饭 执行的代码 。 洗手洗手 function editXZZ_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,BackgroundColor,white);beef else set(hObject,Backgr

18、oundColor,get(0,defaultUicontrolBackgroundColor);beef end 洗手 %上面的函数用来在程序中设置 editXZZ 的属性值 。 洗手洗手 function pushbuttonCtoC_Callback(hObject, eventdata, handles) %上面的函数是点击圆旋转成圆环按钮时 , 吃饭 执行的代码 , 吃饭 即可以在此处添加圆旋转成圆环时的程序代码 。 洗手洗手function editCR_Callback(hObject, eventdata, handles) %上面的函数是 editCR这个编辑文本按钮回调时

19、, 吃饭 执行的代码 。 洗手洗手 function editCR_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,BackgroundColor,white);beef 9 else set(hObject,BackgroundColor,get(0,defaultUicontrolBackgroundColor);beef end洗手 %上面的函数用来在程序中设置 editCR的属性值 。 洗手洗手 function editDist_Callback(hObject, eventdata, handles)洗手 fun

20、ction editDist_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,BackgroundColor,white);beef else set(hObject,BackgroundColor,get(0,defaultUicontrolBackgroundColor);beef end %上面的函数用来在程序中设置 editDist 的属性值 。 洗手洗手 下面真正添加自己的程序 , 吃饭 最后成的程序如下 : bef自己添加的程序用红色表示 。 洗手洗手 function varargout = Exp8(vara

21、rgin) gui_Singleton = 1;beef gui_State = struct(gui_Name, mfilename, . gui_Singleton, gui_Singleton, . gui_OpeningFcn, Exp8_OpeningFcn, . gui_OutputFcn, Exp8_OutputFcn, . gui_LayoutFcn, , . gui_Callback, );beef if nargin beef end 洗手 if nargout varargout1:nargout = gui_mainfcn(gui_State, varargin:);b

22、eef else gui_mainfcn(gui_State, varargin:);beef end %上面的是系统初始化代码 , 吃饭 绝对不要去修改它们 。 洗手洗手 function Exp8_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject;bef洗手 guidata(hObject, handles);bef洗手 %这里选择了一个图片文件 , 吃饭 作为初始画面 , 吃饭 具体的图片可以选择自己喜欢的 。 洗手 map1=imread(Water lilies.jpg);beef i

23、mage(map1) %上面的代码 , 吃饭 告诉我们 , 吃饭 一般的用户界面的自己设置的初始化状态应添加在这个函数内 。 洗手洗手 function varargout = Exp8_OutputFcn(hObject, eventdata, handles) varargout1 = handles.output;bef 洗手 % 上 面 的 函 数 返 回 的 量 直 接 到 命 令 窗 口 。 洗 手 洗 手 function pushbuttonLxx_Callback(hObject, eventdata, handles) %上面的函数是点击螺旋线按钮时 , 吃饭 执行的代码

24、, 吃饭 即可以在此处添加有关螺旋线的程序代码 。 洗 手洗手axes(handles.axes1) cla v=2;beef alf=pi/6;beef omg=pi/5;beef t=0:0.01:100;beef x=v*sin(alf).*cos(omg*t).*t;beef y=v*sin(alf).*sin(omg*t).*t;beef 10 z=v*cos(alf).*t;beef %plot3(x,y,z) axis(-100 100 -100 100 0 160) grid on axis equal on comet3(x,y,z)洗手 %上面的程序是 “一质点 , 吃饭

25、沿着已知圆锥面 的一条直母线自圆锥的顶点起 , 吃饭 作等速直线运动 , 吃饭 另一方面这一条母线在圆锥面上 , 吃饭 过圆锥的顶点绕圆锥的轴 (旋转轴 )作等速的转动 , 吃饭 这时质点在圆锥面上的轨迹 ”的动态形成过程 。 洗手洗手 function pushbuttonNBX_Callback(hObject, eventdata, handles) %上面的函数是点击内摆线按钮时 , 吃饭 执行的代码 , 吃饭 即可以在此处添加有关内摆线的程序代码 。 洗 手洗手axes(handles.axes1) cla a=str2double(get(handles.editBCR,Strin

26、g);beef b=str2double(get(handles.editSCR,String);beef k=str2double(get(handles.editXZZ,String);beef axis(-a-2 a+2 -a-2 a+2 0 a+2) line(-a-2,a+2,0,0);beef洗手 hold on line(0,0,-a-2,a+2 u=0:pi/30:2*pi;beef x=a*cos(u);beef y=a*sin(u);beef plot(x,y) x=b*cos(u)+a-b;beef y=b*sin(u);beef plot(x,y) axis equal

27、 on grid on theta=0:pi/1800:k*a*pi;beef x=(a-b)*cos(b/a*theta)+b*cos(a-b)/a*theta);beef y=(a-b)*sin(b/a*theta)-b*sin(a-b)/a*theta);beef comet(x,y)洗手 %上面的程序是内摆线的动态的形成过程 洗手 % - Executes on button press in pushbuttonExit. function pushbuttonExit_Callback(hObject, eventdata, handles) %上面的函数是点击退出按钮时 , 吃饭

28、 执行的代码 , 吃饭 即可以在此处添加退出时的程序代码 。 洗手洗手 ss=questdlg(你真的要退出吗 ? beef,退出信息窗口! ,不 , 吃饭 我还想看看! ,是的 , 吃饭 我要退出! ,是的 , 吃饭 我要退出! );bef switch ss case 是的 , 吃饭 我要退出! delete(handles.figure1);beef end 洗手 %上面的程序是退出程序时信息窗口 洗手 function editBCR_Callback(hObject, eventdata, handles) %上面的函数是 editBCR 这个编辑文本按钮回调时 , 吃饭 执行的代码 。 洗手洗手 function editBCR_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,BackgroundColor,white);beef else set(hObject,BackgroundColor,get(0,defaultUicontrolBackgroundColor);beef

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。