MATLAB-SIMULINK实用教程第6章图形用户界面(GUI)
利用Matlab的图形用户界面(GUI)功能,设计并实现实验主界面

(1)利用Matlab的图形用户界面(GUI)功能,设计并实现实验主界面;(2) 实现在“符号计算”图形用户界面中的各项符号计算功能,如实现Matlab的求极限、求导、求不定积分与定积分、级数求和、方程组的符号求解、常微分方程的符号求解等符号计算;(3) 利用Matlab的二维、三维绘图功能,实现图形用户界面(GUI)中的部分符号计算的可视化,即给出符号计算实例的同时实现该实例的图形化描述。
如下图给出了一个简单的GUI界面,学生可以参考如下图设计出自己的GUI界面。
程序如下:hf=figure('Position',[200,200,700,500],...'Name','信计08(2)班阿卜杜热黑木20080803417', ...'NumberTitle','off','MenuBar','none');uicontrol(hf,'Style','Frame','Position',[0,0.15,0.45,1],...'Units','normalized','Back',[0,1,1]);COMM1=['n=str2num(get(he1,''String''));', ...%求导连接'b=sym(get(he7,''String''));',...'dec=diff(b,n);', ...'set(he8,''string'',char(dec));'];COMM2=['a=str2num(get(he2,''String''));', ...%求极限连接'f=sym(get(he7,''String''));',...'lim=limit(f,a);', ...'set(he8,''string'',char(lim));'];COMM3=['g=sym(get(he7,''String''));',... %不定积分连接'int_1=int(g);', ...'set(he8,''string'',char(int_1));'];COMM4=['a=str2num(get(he3,''String''));', ... %级数求和连接'b=str2num(get(he5,''String''));', ...'f=sym(get(he7,''String''));',...'sum_1=symsum(f,a,b);', ...'set(he8,''string'',char(sum_1));'];COMM5=['a=str2num(get(he4,''String''));', ... %定积分连接'b=str2num(get(he6,''String''));', ...'f=sym(get(he7,''String''));',...'int_2=int(f,a,b);', ...'set(he8,''string'',char(int_2));'];COMM6=['f=get(he7,''String'');',...'dsolve_1=dsolve(f,''x'');', ...'set(he8,''string'',char(dsolve_1));'];COMM7=['f=get(he7,''String'');',...'ezplot(f);'];COMM8=['g=get(he8,''String'');',...'ezplot(g);'];uicontrol(hf,'Style','Push','Position',[0.02,0.9,0.11,0.06],...'String','求导','Units','normalized','Call',COMM1); uicontrol(hf,'Style','Text','Position',[0.17,0.85,0.08,0.1],...'Units','normalized','Horizontal','center',...'String','阶数','Back',[0,1,1]);he1=uicontrol(hf,'Style','Edit','Position',[0.25,0.9,0.15,0.06],...'Units','normalized','Back',[0,1,0]);uicontrol(hf,'Style','Push','Position',[0.02,0.72,0.13,0.06],...'String','求极限','Units','normalized','Call',COMM2);uicontrol(hf,'Style','Text','Position',[0.17,0.67,0.08,0.1],...'Units','normalized','Horizontal','center',...'String','极限点','Back',[0,1,1]);he2=uicontrol(hf,'Style','Edit','Position',[0.25,0.72,0.15,0.06],...'Units','normalized','Back',[0,1,0]);uicontrol(hf,'Style','Push','Position',[0.02,0.58,0.13,0.06],...'String','不定积分','Units','normalized','Call',COMM3);uicontrol(hf,'Style','Push','Position',[0.02,0.45,0.13,0.06],...'String','级数求和','Units','normalized','Call',COMM4);uicontrol(hf,'Style','Text','Position',[0.31,0.44,0.06,0.06],...'Units','normalized','Horizontal','center',...'String','上限','Back',[0,1,1]);he5=uicontrol(hf,'Style','Edit','Position',[0.38,0.45,0.06,0.06],...'Units','normalized','Back',[0,1,0]);uicontrol(hf,'Style','Text','Position',[0.17,0.44,0.06,0.06],...'Units','normalized','Horizontal','center',...'String','下限','Back',[0,1,1]);he3=uicontrol(hf,'Style','Edit','Position',[0.24,0.45,0.06,0.06],...'Units','normalized','Back',[0,1,0]);uicontrol(hf,'Style','Push','Position',[0.02,0.32,0.13,0.06],...'String','求定积分','Units','normalized','Call',COMM5);uicontrol(hf,'Style','Text','Position',[0.31,0.31,0.06,0.06],...'Units','normalized','Horizontal','center',...'String','上限','Back',[0,1,1]);he6=uicontrol(hf,'Style','Edit','Position',[0.38,0.32,0.06,0.06],...'Units','normalized','Back',[0,1,0]);uicontrol(hf,'Style','Text','Position',[0.17,0.3,0.08,0.06],...'Units','normalized','Horizontal','center',...'String','下限','Back',[0,1,1]);he4=uicontrol(hf,'Style','Edit','Position',[0.24,0.32,0.06,0.06],...'Units','normalized','Back',[0,1,0]);uicontrol(hf,'Style','Push','Position',[0.02,0.2,0.16,0.06],...'String','解微分方程','Units','normalized','Call',COMM6);uicontrol(hf,'Style','text','Position',[0.48,0.9,0.13,0.06],...'String','原函数','Units','normalized');he7=uicontrol(hf,'Style','edit','Position',[0.65,0.9,0.30,0.06],...'String','','Units','normalized','Back',[0,1,0]);uicontrol(hf,'Style','text','Position',[0.48,0.77,0.13,0.06],...'String','结果函数','Units','normalized');he8=uicontrol(hf,'Style','text','Position',[0.65,0.77,0.30,0.06],...'String','','Units','normalized','Back',[0,1,0]);h_axes=axes('position',[0.55,0.2,0.4,0.5]);uicontrol(hf,'Style','push','Position',[0.58,0.02,0.13,0.06],...'String','初始绘图','Units','normalized','call',COMM7);uicontrol(hf,'Style','push','Position',[0.80,0.02,0.13,0.06],...'String','结果绘图','Units','normalized','call',COMM8);uicontrol(hf,'Style','Push','Position',[0.02,0.02,0.08,0.06],...'String','退出','Units','normalized','Call', 'close');。
Matlab中的GUI设计和用户界面开发指南

Matlab中的GUI设计和用户界面开发指南引言在科学计算和数据可视化领域,Matlab是一种经常被使用的高级技术工具。
虽然Matlab主要以命令行界面为特点,但其GUI(Graphical User Interface)设计和用户界面开发方面的功能同样强大。
本文将介绍如何使用Matlab进行GUI设计和用户界面开发,并提供一些实用的指南。
一、GUI设计的重要性GUI设计是一种将复杂的计算方法和数据分析过程以直观的方式呈现给用户的技术。
优秀的GUI设计能够提升用户的工作效率,减少错误的发生,并增强用户对软件的使用体验。
在科学研究和工程应用中,GUI设计的重要性不言而喻。
二、Matlab中的GUI设计工具Matlab提供了一些有用的工具和函数用于GUI设计。
最常用的工具是GUIDE (Graphical User Interface Development Environment),它是Matlab的图形用户界面开发环境。
GUIDE允许用户通过可视化的方式创建和编辑GUI元素,如按钮、文本框、图形等。
此外,Matlab还提供了一些用于处理图形和交互的函数,如绘图函数、事件处理函数等。
三、GUI设计的基本原则在进行GUI设计时,有一些基本原则需要被遵循。
首先,界面应该简洁、直观和易于理解。
用户应该能够快速找到所需的功能,并在界面上进行直接操作。
其次,界面应该具有一致性,各个元素的布局和功能应该保持一致,避免给用户造成困惑。
最后,界面应该具有灵活性和可扩展性,方便用户进行个性化设置和定制。
四、实例:绘制曲线的GUI设计假设我们需要设计一个简单的GUI界面,用于绘制数学函数的曲线。
首先,我们可以使用GUIDE创建一个包含绘图区域、输入框和按钮的界面。
然后,我们需要编写一些事件处理函数,用于响应用户的操作。
一个基本的事件处理函数是“绘图”函数,它用于根据用户输入绘制曲线。
在该函数中,我们可以使用Matlab提供的绘图函数,如plot()、xlabel()和ylabel()等,来完成曲线的绘制和标注。
MATLAB_第6讲_GUI界面设计

25
6.2 控件对象及属性
1. GUI控件对象类型 Matlab中的控件大致可分为两种,一种为动作 控件,鼠标点击这些控件时会产生相应的响应。 一种为静态控件,是一种不产生响应的控件,如 静态文本框等。 控件对象是事件响应的图形界面对象。当某一 事件发生时,应用程序会做出响应并执行某些预 定的功能子程序(Callback).
11
1. 布局编辑器(Layout editor)
1) 将控件对象放置到布局区
用鼠标选择并放置控件到布局区内; 移动控件到适当的位置; 改变控件的大小; 选中多个对象的方法。
一 个 简 单 的 布 局 示 例
12
1. 布局编辑器(Layout editor)
2)激活图形窗口
点击 即可激活图形窗口,如所建立的布局还没有进 行存储,可用File菜单下的Save As菜单项(或工具栏中的 对应项),按输入的文件的名字,在激活图形窗口的同时 将存储一对同名的M文件和带有.fig扩展名的FIG文件。
27
1. GUI控件对象类型
5) 文本编辑器(Editable Texts):用来使用键盘输入字符串 的值,可以对编辑框中的内容进行编辑、删除和替换等 操作;
6) 静态文本框(Static Texts):仅用于显示单行的说明文字; 7) 滚动条(Slider): 可输入指定范围的数量值; 8) 组合板(Panel):在图形窗口中对控件分组组合; 9) 列表框(List Boxes):在其中定义一系列可供选择的字符串 10) 弹出式菜单(Popup Menus): 让用户从一列菜单项中选 择一项作为参数输入;
第6讲 MATLAB GUI界面设计
matlab中图形用户界面的教程

创建GUI应用程序
case 'Peaks' % User selects peaks handles.current_data = handles.peaks; case 'Membrane' % User selects membrane handles.current_data = handles.membrane; case 'Sinc' % User selects sinc handles.current_data = handles.sinc; end % Save the handles structure. guidata(hObject,handles) % Hints: contents = get(hObject,'String') returns data_pop_up contents as cell array % contents{get(hObject,'Value')} returns selected item from data_pop_up
GUI代码说明
– M 文件扩展名为 .m, 其中包含 GUI 的初始代 码及相关响应函数的模 板。用户需要在该文件 中添加响应函数的具体 内容。 – M 文件通常包含一个与 文件同名的主函数,各 个控件对应的响应函数, 这些响应函数为主函数 的子函数。其内容如表 所示。
内容 描述
注释
程序注释。当在命令行调用 help 时显 示
创建GUI应用程序
• 创建一个 GUI,实现三维图形绘制。 界面中应包含一个绘图区域; 一个面板,其中包含三个绘图按钮,分 别实现表面图、网格图和等值线的绘制; 一个弹出菜单,用以选择数据类型,并 且用静态文本进行说明。其草图如图所示。
MATLAB-SIMULINK实用教程第6章图形用户界面(GUI)

图6-8 菜单编辑器
6.5 小 结
熟悉如VB,VC,Java等面向对象编程的读 者在学习使用GUIDE创建GUI对象和标准菜单的 定制时,会发现它们之间的相似之处,因此上 手很容易,但如果要精通G′,则需要更加深 入的学习。 本章简要介绍了图形用户界面的使用,并 通过例子介绍GUI中最重要的三种方法。
第6章图形用户界面(GUI)
6.1 GUI对象层次结构 6.2 使用M文件创建GUI对象 6.3 使用GUIDE创建GUI对象 6.4 使用GUIDE创建自定义菜单 6.5 小 结
如果读者想向别人提供应用程序,想进行 某种技术、方法的演示,想制作一个供反复使 用且操作简单的专用工具,那么图形用户界面 (Graphical User Interfaces,GUI)是较 好的选择之一。
图6-1 GUI对象层次结构图
6.2 使用M文件创建GUI对象
本节将介绍如何使用M文件来创建简单的 GUI对象,并可以响应用户的键盘或鼠标操作。 【例6-1】 构造如图6-2所示的GUI对象, 要求单击June按钮时,在文本框显示June;单 击July按钮时,在文本框显示June,单击off 按钮时,off按钮显示为on;单击close按钮关 闭窗口。
图形用户界面通常是一种包含多种图形对 象的界面,典型的图形界面包括图形显示、功 能按钮控件以及用户自定义的功能菜单等。 为了让界面实现各种功能,用户需要对各 个图形对象进行布局和事件编程。 这样,当用户激活对应的GUI对象时,就 能执行相应的事件行为。
最后,必须保存和发布自己创建的GUI, 使得用户可以应用GUI对象。 本章通过几个例子介绍GUI中最重要的三 种方法:使用M文件创建GUI对象,使用GUIDE 创建GUI对象和标准菜单的定制。
MatlabGUI图形用户界面设计[1]
![MatlabGUI图形用户界面设计[1]](https://img.taocdn.com/s3/m/9e5cd5fbb4daa58da1114a56.png)
⑤ 布局编辑器的弹出菜单
在任一控件上按下鼠标右键,会弹出一个菜单,通过该菜单可以完成布局编辑器 的大部分操作。
2. 位置调整工具( ) 利用位置调整工具,可以对对象设计区内的多个对象的位置进行调整。
位置调整工具的打开方式有两种: ① 从设计窗口的工具栏上选择 命令按钮; ② 选择菜单下的 ...菜单项,就可以打开对象位置调整器。
菜单也可以通过编程实现, 方法为从设计窗口的工具栏上 选择 命令按钮,打开菜单编 辑程序。
菜单编辑器包括菜单的设计和编辑,菜单编辑器有八个快捷键,可以利用它们任意添加或 删除菜单,可以设置菜单项的属性,包括名称()、标识()、选择是否显示分隔线( )、是否在菜单 前加上选中标记( )、调用函数()。
选择菜单下的 菜单项;
在命令窗口中输入; 在控件对象上单击鼠标右键,选择弹出菜单的 菜单项。
② 使用属性查看器( )
布置控件; 定义文本框的属性; 定义坐标轴的属性; 定义按钮的属性; 定义复选框。
4. 菜单编辑器( )
利用菜单编辑器,可以创建、设置、修改下拉式菜单和快捷菜单。选择 菜单下的 ...子菜单, 即可打开菜单编辑器。
菜单编辑器( )——创建、设计、修改下拉式菜单和快捷菜单;
顺序编辑器( )——用于设置当用户按下键盘上的键时,对象被选中的先后顺序。
在 5中, 的设计是以 M文件的编程形式实现的,的布局代码存储在M文件和文件中,而在 6中有了很大的改变, 6将的布局代码存储在 文件中,同时还产生一个M文件用于存储调用函 数,在M文件中不再包含的布局代码,在开发应用程序时代码量大大减少。
为设计一共准备了4种模板,分别是: ()(空白模板,默认); (带控件对象的模板); (带坐标轴与菜单的模板); (带模式问题对话框的模板)。
电力系统的MATLABSIMULINK仿真与应用第6章

第6章 电力系统稳态与暂态仿真
6.1.5 LTI视窗
打开“LTI视窗”窗口如图6-6所示。该窗口中含有以下 内容: (1) “系统输入”(System inputs)列表框:列出电路状态 空间模型中的输入变量,选择需要用到LTI视窗的输入变量。 (2) “系统输出”(System outputs)列表框:列出电路状态 空间模型中的输出变量,选择需要用到LTI视窗的输出变量。 (3) “打开新的LTI视窗”(Open New LTI Viewer)按键: 产生状态空间模型并打开选中的输入和输出变量的LTI视窗。 (4) “打开当前LTI视窗”(Open in current LTI Viewer)按 键:产生状态空间模型并将选中的输入和输出变量叠加到当
(2) 改变仿真初始状态; (3) 进行潮流计算并对包含三相电机的电路进行初始化
设置;
(4) 显示阻抗的依频特性图;
第6章 电力系统稳态与暂态仿真
(5) 显示FFT分析结果;
(6) 生成状态—空间模型并打开“线性时不变系 统”(LTI)时域和频域的视窗界面; (7) 生成报表,该报表中包含测量模块、电源、非线性 模块和电路状态变量的稳态值,并以后缀名.rep保存; (8) 设计饱和变压器模块的磁滞特性。 6.1.1 主窗口功能简介 MATLAB提供的Powergui模块在SimPowerSystems库中, 图标如图6-1所示。
第6章 电力系统稳态口
第6章 电力系统稳态与暂态仿真
(3) “节点类型”(Bus type)下拉框:选择节点类型。对
于“PV节点”(P&V Generator),可以设置电机的端口电压 和有功功率;对于“PQ节点”(P&Q Generator),可以设置 电机的有功和无功功率;对于“平衡节点”(Swing Bus), 可以设置终端电压UAN的有效值和相角,同时需要对有功 功率进行预估。 如果选择了非同步电机模块,则仅需要输入电机的机械 功率;如果选择了三相动态负荷模块,则需要设置该负荷消 耗的有功和无功功率。 (4) “终端电压UAB”(Terminal voltage UAB)文本框:对 选中电机的输出线电压进行设置(单位:V)。
MATLABGUI的使用经验与技巧

MATLABGUI的使用经验与技巧
一、Matlab介绍
Matlab是一款由MathWorks公司推出的矩阵/数组工具软件,具有高
效的数学计算和可视化功能。
可以为科学计算和工程建模提供便捷的处理
方式,是一款多功能软件。
Matlab GUI(图形用户界面)是一种软件界面,使用户能够即时地与Matlab应用程序进行交互。
二、Matlab GUI的使用经验及技巧
1、UI组件:
Matlab GUI的UI组件是构建GUI的基础,主要有按钮、复选框、单
选框、输入框、列表框等,可以根据实际需求添加不同的UI组件,并且
可以定义UI组件的属性,如按钮的背景色、位置等。
2、回调函数:
Matlab GUI的回调函数是比较重要的一个组成部分,当用户激活一
些UI组件时,会触发回调函数,实现用户与程序的交互,从而实现各种
操作和功能。
回调函数中可以定义各种语句,调用函数,甚至可以执行程
序段,实现复杂功能。
3、数据处理:
Matlab GUI通过一定的语句,即可实现用户的数据输入、输出、处
理及其他操作,从而达到一定的功能要求。
可以在GUI中运行matlab程序,处理复杂的数据,这需要熟练掌握Matlab语言,以及其他数据处理
技术,例如正则表达式等。
4、可视化:
可视化是GUI最重要的功能之一,可以使用各种图表或实时显示数据,让用户更直观地查看和理解数据。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图6-4 使用GUIDE创建GUI对象图
1. 启动GUIDE
图6-控件对象的布局和属性设置
3. 编写相应的程序代码 4. 生成Fig文件和M文件
6.4 使用GUIDE创建自定义菜单
在GUI控件对象中,界面菜单(uimenu) 是一个重要的组成部分。 用户可以根据需要在GUI对象中创建标准 菜单,自行设置菜单或创建现场菜单等,同时 可以设置菜单控件的各种属性。
6.1 GUI对象层次结构
图形对象不仅包括 uimenu 和 uicontrol 对 象,而且还包括图形、坐标轴和它们的子对象。 让我们从另一个角度来看这一层次结构, 计算机的屏幕本身是根结点,图形是根对象的 子对象,角坐标轴、 uimenu 和 uicontrol 是图 形的子对象。
根可以包括多个图形,每个图形含有一组 或多组坐标轴以及其子对象,每个图形也可以 有 一 个 或 多 个 与 坐 标 轴 无 关 的 uimenu 和 uicontrol,如图6-1所示。 虽然uicontrol对象无子对象结点,但他们 确实具有多种类型。 uimenu 对象常将其他的 uimenu 对象作为 其子对象。 表 6-1 所示给出了 Uimenu 对象的属性及 其意义。
图6-1 GUI对象层次结构图
6.2 使用M文件创建GUI对象
本节将介绍如何使用M文件来创建简单的 GUI对象,并可以响应用户的键盘或鼠标操作。 【例6-1】 构造如图6-2所示的GUI对象, 要求单击June按钮时,在文本框显示June;单 击July按钮时,在文本框显示June,单击off 按钮时,off按钮显示为on;单击close按钮关 闭窗口。
图形用户界面通常是一种包含多种图形对 象的界面,典型的图形界面包括图形显示、功 能按钮控件以及用户自定义的功能菜单等。 为了让界面实现各种功能,用户需要对各 个图形对象进行布局和事件编程。 这样,当用户激活对应的GUI对象时,就 能执行相应的事件行为。
最后,必须保存和发布自己创建的GUI, 使得用户可以应用GUI对象。 本章通过几个例子介绍GUI中最重要的三 种方法:使用M文件创建GUI对象,使用GUIDE 创建GUI对象和标准菜单的定制。
第6章图形用户界面(GUI)
6.1 GUI对象层次结构 6.2 使用M文件创建GUI对象 6.3 使用GUIDE创建GUI对象 6.4 使用GUIDE创建自定义菜单 6.5 小 结
如果读者想向别人提供应用程序,想进行 某种技术、方法的演示,想制作一个供反复使 用且操作简单的专用工具,那么图形用户界面 (Graphical User Interfaces,GUI)是较 好的选择之一。
图6-8 菜单编辑器
6.5 小 结
熟悉如VB,VC,Java等面向对象编程的读 者在学习使用GUIDE创建GUI对象和标准菜单的 定制时,会发现它们之间的相似之处,因此上 手很容易,但如果要精通G′,则需要更加深 入的学习。 本章简要介绍了图形用户界面的使用,并 通过例子介绍GUI中最重要的三种方法。
图6-2 使用M文件创建带有按钮和 文本框的GUI对象图
【例6-2】 构造如图6-3所示的GUI对象, 当在坐标轴范围内单击鼠标左键,会在相应位 置产生“*”号。
图6-3 使用M文件创建鼠标响应的GUI对象图
6.3 使用GUIDE创建GUI对象
MATLAB图形用户界面开发环境(GUIDE) 提供了多种设计模板,用户可以轻松地定制属 于自己的GUI对象,同时自动生成M文件框架, 并用该框架编写自己的函数代码。 【例6-3】 使用GUIDE来定制如图6-4所 示的GUI对象界面,使用M文件来编写相应的 事件程序,完成整个创建工作。