第8章MATLAB图形用户界面设计
Matlab图形用户界面的制作

第18卷第4期2005年8月常州工学院学报J our nal of Cha ngzhou I nstitute of Tec h nologyV ol.18 N o.4A ug.2005收稿日期:2005204201Matla b图形用户界面的制作陈德伟(常州工学院电子信息与电气工程学院,江苏常州213002)摘要:介绍了在Matla b平台下开发图形用户界面的方法,总结了开发图形用户界面的一般原则和步骤,给出了常用的创建菜单和各类控件的命令,详细说明了这些命令的使用方法,最后给出了两个使用Matla b创建图形用户界面的实际例子。
关键词:Matla b;图形用户界面中图分类号:TP39 文献标识码:A文章编号:1671-0436(2005)04-0007-05MA TL AB语言是当今国际上科学界最具影响力、也是最有活力的软件。
它起源于矩阵运算,并已经发展成一种高度集成的计算机语言,它提供了强大的科学运算、灵活的程序设计流程、高质量的图形可视化与界面设计、便捷的与其他程序和语言接口的功能。
科研工作者选择Matla b就在于利用它优秀的数值计算能力,然而由于Matla b属于解释性语言,不能够生成脱立于Matla b平台的可执行文件,程序的使用者常常迷茫于大量的程序代码而不知所措,不知道如何修改输入参数获得不同的分析结果。
因此有必要开发一种运行于Matla b平台下的图形用户界面(GU I:Grap hical User I nterf aces),既保持Matla b优秀的数值处理能力,又提供良好的人机对话窗口,给科研分析设计带来更大的灵活性。
GU I是由窗口、按键、菜单、文字说明等对象构成的一个用户界面,用户通过一定的方法,选择、激活这些图形对象,实现计算、绘图等功能。
一个好的GU I不仅有利于用户快速掌握程序的操作流程,有效地使用程序,也有利于开发者展示Matla b平台下的开发技术。
目前已有大量书籍介绍了Matla b平台下GU I的设计,但大都没有将基础知识与实例进行有机的结合,本文通过衍射光栅分析软件的创建实例,全面、系统地介绍了Matla b下GU I的开发过程,本文只介绍GU I的开发过程,各类命令的详细使用方法参阅参考文献[1]-[3]。
MATLAB使用教程

2.2 变量和赋值
2.2.1 变量的命名 在MATLAB中,变量名是以字母开头, 后接字母、数字或下划线的字符序列, 最多19个字符。 在MATLAB中,变量名区分字母的大小 写。MATLAB提供的标准函数名以及命 令名必须用小写字母。
目录 21
2.2.2 赋值语句 MATLAB赋值语句有两种格式: (1) 变量=表达式 (2) 表达式 一般地,运算结果在命令窗口中显示出来。如 果在语句的最后加分号,那么,MATLAB仅仅 执行赋值操作,不再显示运算的结果。 在MATLAB语句后面可以加上注释,注释以% 开头,后面是注释的内容。
目录 22
例2.1 计算表达式的值,并将结果赋给变量x, 然后显示出结果。 在MATLAB命令窗口输入命令:
x=(5+cos(47*pi/180))/(1+sqrt(7)-2*i) %计算表达式的值
目录 23
2.2.3 数据的输出格式 MATLAB用十进制数表示一个常数,具体可 采用日常记数法和科学记数法两种表示方法。 数据输出时用户可以用format命令设置或改 变 数 据 输 出 格 式 。 format 命 令 的 格 式 为 : format 格式符 注意,format命令只影响数据输出格式,而 不影响数据的计算和存储。
17
例1.4 设有常微分方程初值问题,试求 其数值解,并与精确解相比较。 (1)建立函数文件funt.m: function yp=funt(t,y) yp=(y^2-t-2)/4/(t+1); (2)求解微分方程: t0=0;tf=10;y0=2; [t,y]=ode23('funt',[t0,tf],y0); y1=sqrt(t+1)+1; t'
第七讲MATLAB图形用户界面(GUI)设计

第七讲MATLAB图形⽤户界⾯(GUI)设计第7讲MATLAB图形⽤户界⾯(GUI)设计图形⽤户界⾯(GUI, Graphical User Interface)是由图形控件构建的⽤于⼈与计算机交互信息的界⾯。
在图形⽤户界⾯上,⽤户可以根据界⾯上的提⽰信息完成⾃⼰的⼯作,⽽不需要记忆⼤量繁琐的命令,只需通过⿏标、键盘等便捷的⽅式与计算机交互信息、选择想要运⾏的程序、控制程序的运⾏、实时显⽰图形信息。
MATLAB创建的图形⽤户界⾯对象有三类:⽤户界⾯控件,如按钮、列表框、编辑框等;下拉菜单,如菜单、⼦菜单;内容菜单,如弹出式菜单。
⼀、命令⾏建⽴⽤户界⾯的⽅法1、创建控件命令:uicontrol调⽤格式:1)uicontrol(‘PropertyName1’,value1, ‘PropertyName2’,value2,……)功能:在当前图形⽤户的界⾯上,应⽤当前制定的属性值创建控件;2)h=uicontrol(‘PropertyName1’,value1, ‘PropertyName2’,value2,……)功能:在当前图形⽤户的界⾯上,应⽤当前制定的属性值创建控件,并返回控件的句柄;3)uicontrol(FIG, ‘PropertyName1’,value1, ‘PropertyName2’,value2,……)功能:在句柄FIG指定的图形⽤户界⾯上,创建控件;4)h=uicontrol(FIG, ‘PropertyName1’,value1, ‘PropertyName2’,value2,……) 功能:在句柄FIG指定的图形⽤户界⾯上,创建控件,并返回控件的句柄。
说明:函数中的PropertyName参数的参数值有:Push buttons(命令按钮)、sliders (滚动条控件)、Radio button(单选按钮)、Check box(复选框)、Edit text (可编程⽂本框)、Static text(静态⽂本框)、Pop_up menus(弹出式菜单)、listbox(列表框)、Toggle button(开关按钮)、Axes(坐标轴)、Panel(⾯板控件)、Button group(按钮组框)、ActiveX control(ActiveX 控件)。
第八章图形用户界面(GUI)_MATLAB全教学(安装、使用、运算、编程、仿真、应用与接口)

➢ 使用界面设计编辑器进行界面设计;
➢ 编写控件行为响应控制(即回调函数)代 码。
8.1.2 启动GUIDE
在 MATLAB 中 , GUIDE 提 供 多 个 模 板 来 定 制GUI。这些模板均已包括相关的回调函数, 可以通过修改对应的M文件函数,实现指定 功能。
(4)网线和标线
界面区域内可以使用网格和标线辅助设 计 ,当选 择 【Tools】菜 单下的 【Grid and Rulers】选项时即可打开下图所示的网格和 标线对话框。
2.属性检查器
属性检查器提供所选择对象的可设置属 性列表及当前属性值,并可以进行手动设 置 , 当 选 择 【View】 菜 单 下 的 【Property Inspector】选项时即可打开类似下图所示的 属性检查器。
➢ 单击控件面板中需要放置控件的按钮; ➢ 在光标变为十字形后,使用十字形光标的
中心点来确定控件左上角的位置; ➢ 可以通过拖动鼠标来确定控件的大小。
所有控件布置好后,可以使用激活按钮 或选择【Tools】菜单下的【ActivateFigure】 选项检查GUIDE的设计结果,激活时将(提 示)保存FIG文件和M文件。
8.1.1 GUI概述
GUI是一种包含多种对象的图形窗口,并 为GUI开发提供一个方便高效的集成开发环 境GUIDE。GUIDE主要是一个界面设计工具 集,MATLAB将所有GUI支持的控件都集成在 这个环境中。
GUIDE将设计好的GUI保存在一个FIG文件 中,同时生成M文件框架。
➢ FIG文件:该文件包括GUI图形窗口及其所 有FIG文件包含序列化的图形窗口对象;
➢ 单选按钮:单选按钮通常以组为单位,一 组单选按钮之间是一种互相排斥的关系。
MATLAB的图形用户界面设计

UserData属性的取值是一个矩阵,缺省值为空矩阵,用户可以在 这个属性中保存与该菜单对象相关的重要数据或信息,借此可以达 到传递数据或信息的目的。可以用set和get函数访问该属性。
二、菜单设计
【例2】 建立一个菜单系统。
菜单条中含有File和Help两个菜单项。如果选择File中的New 选项,则将显示New Item字样,如果选择File中的Open选项, 则将显示出Open Item字样。File中的Save菜单项初始时处于禁 选状态,在选择Help选项之后将此菜单项恢复成可选状态,如 果选择File中的Save选项,则将出现一个新的菜单(三级菜单), 其中共有两个子菜单项Text file和Graphics file,如果选择第1项, 则将变量k1和k2分别赋为0和1,然后调用file01.m文件来进行 相应的处理(该文件需要另行编写),如果选择第2项,则将变 量k1和k2分别赋为1和0,然后调用file10.m文件来进行相应的 处理(该文件也需要另行编写)。如果选择File中的Save As选项, 则将显示Save As Item字样。如果选择File中的Exit选项,则将 关闭当前窗口。如果选择Help中About …选项,则将显示Help Item字样,并将Save•菜单设置成可选状态。
第八讲 MATLAB图形用 户界面设计
所谓图形用户界面是指由窗口、菜单、对 话框等各种图形对象组成的用户界面。在 这种用户界面下,用户的操作是通过“选 择”各种图形对象来实现的。
一、图形窗口的控制
一、图形窗口的控制
1.建立图形窗口 要建立一个图形窗口,有两种方法:
(1)菜单操作:在MATLAB命令窗口选择File菜单中 的New命令,再选取Figure子菜单,这样将建立一个标准 的MATLAB图形窗口;
matlab设计gui程序例题

近年来,MATLAB在科学计算和工程领域中的应用变得越来越广泛。
其中,GUI(Graphical User Interface)程序设计作为MATLAB的一个重要应用领域,对于帮助用户更直观地理解和使用MATLAB具有重要意义。
本文将以MATLAB设计GUI程序为主题,探讨其原理、实现方法和实际例题,并对其进行深入解析和探讨。
1. GUI程序设计的基本原理在MATLAB中,GUI程序设计主要通过图形用户界面工具包(GUIDE)来实现。
GUIDE工具包提供了一系列可以直观拖放的元素,包括按钮、文本框、下拉菜单等,用户可以通过拖拉这些元素的方式来设计出自己理想的界面。
MATLAB还提供了丰富的回调函数,用户可以将不同控件的回调函数与自定义函数进行绑定,实现交互式的操作。
2. GUI程序设计的实现方法为了更深入地理解GUI程序设计,我们可以以一个简单的例子来说明其实现方法。
假设我们需要设计一个简单的温度转换器,用户可以输入摄氏温度,然后通过点击按钮来实现摄氏温度到华氏温度的转换。
我们可以通过GUIDE工具包来设计界面,添加一个文本框用于输入摄氏温度,一个按钮用于触发转换操作,以及一个用于显示结果的文本框。
我们可以在回调函数中编写转换的过程,当用户点击按钮时,根据用户输入的摄氏温度进行计算,并将结果显示在结果文本框中。
3. 实际例题:温度转换器GUI程序设计现在,让我们按照上面的思路来实际设计一个温度转换器的GUI程序。
我们打开MATLAB并新建一个GUI程序,接着使用GUIDE工具包来设计界面,按照前文描述的方法添加文本框、按钮和结果文本框。
我们为按钮添加点击事件的回调函数,编写摄氏温度到华氏温度的转换算法,并将结果显示在结果文本框中。
我们保存并运行程序,测试其功能和效果。
4. 总结与思考通过上述例题的实际操作,我们更深入地理解了MATLAB的GUI程序设计原理和实现方法。
GUI程序设计能够帮助我们更直观地操作MATLAB,提高使用效率和便利性。
基于matlab的gui设计报告

基于matlab的gui设计报告当然,我很乐意帮助你完成这篇文章。
以下是按照你提供的格式完成的《基于Matlab的GUI设计报告》。
一、介绍1. 引言本报告将探讨基于Matlab的GUI设计,其中包括设计背景、目的和重要性。
2. Matlab简介在开始讨论GUI设计之前,先简要介绍一下Matlab。
Matlab是一种高级的计算机语言和环境,常用于数学计算、数据分析和可视化。
3. GUI设计概述介绍GUI(图形用户界面)设计的概念和重要性。
GUI设计可以提供用户友好的界面,使用户能够通过图形或图标与程序交互。
二、Matlab的GUI设计工具1. Guide工具Guide是Matlab的一个可视化工具,用于创建图形用户界面。
本节将介绍Guide 的基本功能和使用方法。
2. App Designer工具App Designer是Matlab新引入的GUI设计工具,相比Guide具有更强大的功能和更好的用户体验。
本节将介绍App Designer的特点和使用技巧。
3. Matlab的其他GUI工具除了Guide和App Designer,Matlab还提供了其他GUI设计工具,如uifigure 和uitab。
本节将概述这些工具的功能和用途。
三、GUI设计原则1. 界面布局和设计介绍如何合理安排界面布局,包括按钮、文本框、下拉菜单等组件的摆放位置和大小。
2. 用户交互探讨合理的用户交互方式,包括按钮点击、鼠标悬停等,以提供更好的用户体验和减少误操作。
3. 数据可视化介绍如何将计算结果以图表、图像等形式展示给用户,提高数据分析和可视化的效率。
四、案例分析1. GUI设计案例1:温度转换器以一个简单的温度转换器为例,展示如何使用Matlab的GUI设计工具创建一个实用的应用程序。
2. GUI设计案例2:图像处理工具以图像处理为应用场景,展示如何使用Matlab的GUI工具进行图像处理和显示。
3. GUI设计案例3:数据分析工具以数据分析为应用场景,展示如何使用Matlab的GUI工具进行数据可视化和分析。
图形用户界面应用举例

•8.6 图形用户界面应用举例☐GUIDE设计实例☐App Designer设计实例1. GUIDE设计实例例1 利用GUIDE设计工具设计如图所示的用户界面。
该界面可以显示表面图、网格图和等高线图。
绘制图形的功能通过3个命令按钮来实现,绘制图形所需要的数据通过一个列表来选取。
方位角和仰角在视点面板中设置,图形使用的色图通过下拉列表进行选择,着色方式通过单选按钮组进行选择。
切换按钮用于隐藏或显示坐标轴网格。
(1)打开图形用户界面设计窗口,添加有关图形对象,并保存图形用户界面。
☐.fig文件:包含GUI图形窗口及其控件对象的属性描述。
☐.m文件:包括GUI初始化方法以及图形窗口和控件的回调函数。
1. GUIDE设计实例1. GUIDE设计实例(1)打开图形用户界面设计窗口,添加有关图形对象,并保存图形用户界面。
☐用“Blank GUI” 模板新建用户界面。
☐添加控件。
☐保存用户界面。
•.fig文件•.m文件1. GUIDE设计实例(2)利用属性检查器设置界面对象的属性。
☐String属性:用于指定控件上的文本以及列表框和弹出式菜单的选项。
☐Tag属性:定义控件标识。
☐Value 属性:控件的值。
rb_flatrb_interprb_faceted1. GUIDE设计实例(3)利用对齐对象工具,调整控件对象的相对位置。
1. GUIDE设计实例(4)编写代码,实现控件功能。
.m文件中回调函数框架控件Tag_Call类型(hObject, eventdata, handles)其中,hObject为发生事件的源控件,eventdata为事件数据结构,handles为对象句柄集。
1. GUIDE设计实例跟图形窗口有关的有3个函数•_OpeningFcn函数:可以在这个函数内完成数据初始化设置、GUI 的界面的控制和调整等工作。
•_OutputFcn函数:用于控制输出运行结果。
•_Callback函数:用于控制窗口的默认事件,即单击窗口空白区域的触发行为。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
例5.29 利用曲线对象绘制 y1 sin 和 y2 cos 并 利用文字对象完成标注。 theta=-pi:.1:pi; y1=sin(theta); y2=cos(theta); h=line(theta,y1,'LineStyle',':','Color','g'); line(theta,y2,'LineStyle','--','Color','b'); xlabel('-\pi \leq \theta \leq \pi') ylabel('sin(\theta)') title('Plot of sin(\theta)') text(-pi/4,sin(-pi/4),'\leftarrow sin(-\pi\div4)','FontSize',12) set(h,'Color','r','LineWidth',2) %改变曲线1的颜色和线宽
例5.30 利用曲面对象绘制三维曲面z=sin(y)cos(x)。
程序如下: x=0:0.1:2*pi;[x,y]=meshgrid(x);z=sin(y).*cos(x); axes('view',[-37.5,30]); hs=surface(x,y,z,'FaceColor','w','EdgeColor','flat'); grid on; xlabel('x-axis'),ylabel('y-axis'),zlabel('z-axis'); title('mesh-surf'); pause; set(hs,'FaceColor','flat');
7.方框对象
在MATLAB中,矩形、圆角矩形、椭圆、圆及对 应的区域图形都用方框对象表示。使用rectangle函 数可以创建方框对象,其调用格式为:
句柄变量= rectangle (属性名1,属性值1,属性名2, 属性值2,…)
例5.32 在同一个图形窗口中创建矩形、圆角矩形、
椭圆和圆各一个,并使用了不同的线型和线宽。 subplot(2,2,1); rectangle('Position',[2,3,25,15],'LineWidth',3); subplot(2,2,2); rectangle('Position',[3,5,15,8], 'Curvature',0.4,'LineWidth',2); subplot(2,2,3); rectangle('Position',[5,3,10,15],'Curvature',[1,1]); subplot(2,2,4); rectangle('Position',[5,3,10,10],'Curvature',[1,1],... 'LineStyle','--','FaceColor','r'); axis equal
5. 曲面对象 建立曲面对象使用surface函数,调用它的命令形 式为: 句柄变量=surface(x,y,z,属性名1,属性值1,属性 名2,属性值2,…) 其中对x,y,z的解释与高层曲面函数mesh和surf等一 样,其余的解释与前面介绍过的figure和axes等函 数类似。 每个曲面对象也具有很多属性。除公共属性外, 还有其他常用属性。
sin(x)-1 7 6 5 4 3 2 1 0 -1 1 0 -1 0 5 1 0.5 0 -0.5 0 1 -1 0 1 0.5 0 -0.5 sin(x)-2 -1
sin(x)-3
0 10
5 sin(x)-4
10
5
10
3. 曲线对象 建立曲线对象使用line函数,调用它的命令形式为: 句柄变量=line(x,y,z,属性名1,属性值1,属性名2, 属性值2,…) 其中,对x,y,z的解释与高层曲线函数plot和plot3 等一样,其余的解释与前面介绍过的figure和axes函 数类似。 每个曲线对象也具有很多属性。除公共属性外,还 有其他常用属性。
例5.26 建立一个图形窗口。该图形窗口没有菜单
条,标题名称为“图形窗口示例”,起始于屏幕左 下角、宽度和高度分别为300像素点和150像素点, 背景颜色为绿色,且当用户从键盘按下任意一个键 时,将显示“Hello,Keyboard Key Pressed.”字样。 命令如下:
hf=figure('Color',[0,1,0],'Position',[1,1,300,150],... 'Name','图形窗口示例','NumberTitle','off','MenuBar','none',... 'KeyPressFcn','disp(''Hello,Keyboard Key Pressed.'')');
4. 文字对象 使用text函数可以根据指定位置和属性值添加文 字说明,并保存句柄。 调用该函数的命令形式为: 句柄变量=text(x,y,z,‘说明文字’,属性名1,属性
值1,属性名2,属性值2,…)
其中, 说明文字中除使用标准的ASCII字符外,还可使 用LATEX格式的控制字符。 除公共属性外,文字对象还有其他常用属性。
20 15 10
14 12 10 8
5 0
6 0 10 20 30 4 0 5 10 15 20
5.5.3 图形对象的创建
1. 图形窗口对象 建立图形窗口对象使用figure函数。调用该函数的 命令形式为: 句柄变量=figure(属性名1,属性值1,属性名2,属 性值2,…) MATLAB为每个图形窗口提供了很多属性。这些属 性及其取值控制着图形窗口对象。除公共属性外, 其他常用属性:MenuBar属性、Name属性、 Position属性、Color属性等。
5.5.2 图形对象属性
1. 属性名与属性值 MATLAB给每种对象的每一个属性规定了一个名字, 称为属性名,而属性名的取值成为属性值。 例如,LineStyle是曲线对象的一个属性名,它的值决 定着线型,取值可以是'-' 、':'、'-.'、'--'或'none'。 2. 属性的操作 设置对象属性 set函数的调用格式为: set(句柄,属性名1,属性值1,属性名2,属性值2,…) 获取对象属性的属性值 get函数的调用格式为: V=get(句柄,属性名)
6.区域块对象
区域块对象是指一个任意多边形区域。在MATLAB 中,可以使用patch函数创建一个或多个多边形。有 两种形式的patch函数,一种是高级语法形式,另一 种是低级语法形式。前者通过指定每个小面的顶点坐 标和颜色来创建区域块对象,后者通过指定所有顶点 的坐标和各小面的顶点和颜色来创建。 使用高级语法形式时,patch函数的调用格式为: patch(x,y,z,c) 该函数在当前坐标轴中创建二维(x,y)或三维(x,y,z)空 间中带填充模式的区域块对象。x,y,z确定顶点坐标。 如果x,y,z为矩阵,则MATLAB按列创建多个多边形。 c指定每一区域块对象的颜色,它既可以用字符表示, 也可以用RGB三元组表示。
2. 图形对象句柄 MATLAB在创建每一个图形对象时,都为该对象分 配唯一的一个值,称其为图形对象句柄(Handle)。 句柄是图形对象的唯一标识符。 MATLAB提供了3个用于获取已有图形对象句柄的 函数: gcf 获取当前图形窗口的句柄(get current figure)。 gca 获取当前坐标轴的句柄(get current axis)。 gco 获取最近被单击的图形对象的句柄(get current object)。
例5.27 分别在4个不同的图形窗口绘制出正弦、余弦、正切、
余切曲线。要求先建立一个图形窗口并绘图,然后每关闭一个 inspace(0,2*pi,60); y=sin(x);z=cos(x);t=tan(x);ct=1./(t+eps);; %命令组待用 C4=['figure(''Name'',''cotangent(x)'',''NumberTitle'',',... '''off'');plot(x,ct);axis([0,2*pi,-40,40]);']; C3=['figure(''Name'',''tangent(x)'',''DeleteFcn'',C4,',... '''NumberTitle'',''off'');plot(x,t);axis([0,2*pi,-40,40]);']; C2=['figure(''Name'',''cos(x)'',''DeleteFcn'',C3,',... '''NumberTitle'',''off'');plot(x,z);axis([0,2*pi,-1,1]);']; %先创建1个图形窗口并绘制曲线 figure('Name','sin(x)','DeleteFcn',C2,'NumberTitle','off'); plot(x,y);axis([0,2*pi,-1,1]);