没有合适的资源?快使用搜索试试~ 我知道了~
首页MATLAB中GUI教程
MATLAB中GUI教程
需积分: 44 2.7k 浏览量
更新于2023-05-27
评论 3
收藏 604KB PDF 举报
本文档主要介绍MATLAB中GUI使用,同时穿插了很多典型的小程序,基本应用到了GUI中的所有控件
资源详情
资源评论
资源推荐

1
11 图形用户界面(GUI)制作
用户界面(或接口)是指:人与机器(或程序)之间交互作用的工具和方法。如键
盘、鼠标、跟踪球、话筒都可成为与计算机交换信息的接口。
图形用户界面(Graphical User Interfaces ,GUI)则是由窗口、光标、按键、菜单、
文字说明等对象(Objects)构成的一个用户界面。用户通过一定的方法(如鼠标或键盘)
选择、激活这些图形对象,使计算机产生某种动作或变化,比如实现计算、绘图等。
假如读者所从事的数据分析、解方程、计算结果可视工作比较单一,那么一般不会
考虑 GUI 的制作。但是如果读者想向别人提供应用程序,想进行某种技术、方法的演示,
想制作一个供反复使用且操作简单的专用工具,那么图形用户界面也许是最好的选择之
一。
MATLAB 为表现其基本功能而设计的演示程序 demo 是使用图形界面的最好范例。
MATLAB 的用户,在指令窗中运行 demo 打开那图形界面后,只要用鼠标进行选择和点
击,就可浏览那丰富多彩的内容。
即便比较熟悉 MATLAB 的读者,在他初次编写 GUI 程序时,也会感到棘手。为使读
者获得制作自己 GUI 的体验,本章“入门”节提供了一个简单的示例。读者只要输入所
提供的程序,就可引出相应的界面。
本章第 2 节叙述图形用户界面的设计原则和一般制作步骤。第 3、4 节分别介绍用户
菜单、用户控件的制作。出于“由浅入深”的考虑,前 4 节制作 GUI 是通过 M 脚本文件
实现的。利用 M 函数文件制作 GUI ,需要解决数据传递问题,为此专设第 5节给予阐述
和示例。MATLAB 5.x 版为方便用户制作图形界面,提供了一个交互式的设计工具 guide 。
关于该工具的使用方法,被放在第 6节中,以一个综合例题为设计目标逐步展开。
在此提醒读者,假如要比较准确的理解本章程序和掌握本章内容,请先阅读第 10 章
关于图柄的内容。
11.1 入门
【*例 11.1-1】对于传递函数为
12
1
2
ss
G
的归一化二阶系统,制作一个能绘制该系
统单位阶跃响应的图形用户界面。本例演示:(A)图形界面的大致生成过程;(B)静
态文本和编辑框的生成;(C)坐标方格控制键的形成;(D)如何使用该界面。
(1)产生图形窗和轴位框:
clf reset
H=axes('unit','normalized','position',[0,0,1,1],'visible','off');
set(gcf,'currentaxes',H);
str='\fontname{隶书}归一化二阶系统的阶跃响应曲线';
text(0.12,0.93,str,'fontsize',13);
h_fig=get(H,'parent');
set(h_fig,'unit','normalized','position',[0.1,0.2,0.7,0.4]);
h_axes=axes('parent',h_fig,...
'unit','normalized','position',[0.1,0.15,0.55,0.7],...
'xlim',[0 15],'ylim',[0 1.8],'fontsize',8);

2
图 11.1-1 产生坐标轴
(2)在坐标框右侧生成作解释用的“静态文本”和可接受输入的“编辑框”:
h_text=uicontrol(h_fig,'style','text',...
'unit','normalized','position',[0.67,0.73,0.25,0.14],...
'horizontal','left','string',{'输入阻尼比系数','zeta ='});
h_edit=uicontrol(h_fig,'style','edit',...
'unit','normalized','position',[0.67,0.59,0.25,0.14],...
'horizontal','left',...
'callback',[...
'z=str2num(get(gcbo,''string''));',...
't=0:0.1:15;',...
'for k=1:length(z);',...
's2=tf(1,[1 2*z(k) 1]); ',...
'y(:,k)=step(s2,t);',...
'plot(t,y(:,k));',...
'if (length(z)>1) ,hold on,end,',...
'end;',...
'hold off,']);
图 11.1-2 在图形界面中添加编辑框和文本框
(3)形成坐标方格控制按键:
h_push1=uicontrol(h_fig,'style','push',...

3
'unit','normalized','position',[0.67,0.37,0.12,0.15],...
'string','grid on','callback','grid on');
h_push2=uicontrol(h_fig,'style','push',...
'unit','normalized','position',[0.67,0.15,0.12,0.15],...
'string','grid off','callback','grid off');
图 11.1-3 添加了两个按键的图形界面
(4)输入阻尼比系数
,可得单位阶跃响应曲线:
图 11.1-4 输入标量阻尼比所得到的响应曲线

4
图 11.1-5 输入阻尼比数组所得到的一组响应曲线
11.2 图形用户界面的设计原则和一般步骤
11.2.1设计原则
11.2.2 一般制作步骤
11.3 界面菜单(uimenu)
11.3.1图形窗的标准菜单
【例 11.3.1-1】本例说明:如何隐藏和恢复标准菜单的显示。
(1)获得缺省设置的标准菜单
figure
(2)隐去标准菜单的两种方法
set(H_fig , 'MenuBar','none');
set(gcf,'menubar',menubar);
(3)恢复图形窗上标准菜单
set(gcf,'menubar','figure');
图 11.3.1-1 含有菜单条的图形窗
图 11.3.1-2 移去菜单条的图形窗
11.3.2自制的用户菜单
【*例 11.3.2-1】本例演示:如何自制一个带下拉菜单表的用户菜单(如图 11.3.2-1所示)。
该菜单能使图形窗背景颜色设置为兰色或红色。
figure %创建一个图形窗
h_menu=uimenu(gcf,'label','Color'); %制作用户顶层菜单项Color
<2>
h_submenu1=uimenu(h_menu,'label','Blue',... %制作下拉菜单项Blue
<3>

5
'callback','set(gcf,''Color'',''blue'')');
%<4>
h_submenu2=uimenu(h_menu,'label','Red',... %制作下拉菜单Red
<5>
'callback','set(gcf,''Color'',''red'')');
%<6>
图 11.3.2-1 创建用户菜单示例
11.3.3 用户菜单的属性
11.3.3.1 回调属性和菜单名
【*例 11.3.3.1-1】本例的目标是:在图形窗上自制一个名为【Test】的“顶层菜单项”;
当用鼠标点动该菜单项时,将产生一个带分格的封闭坐标轴。通过本例说明:(A)回调
属性的运作机理;(B)用户顶层菜单项的制作(C)uimenu 属性的设置方法;(D)复
杂字符串的构成方法和注意事项。
( 1 )在 MATLAB 指 令 窗 中 运 行以 下 程 序 可 产 生 带 分 格 的 封闭 坐 标 轴 ( 见 图
11.3.3.1-1)
grid on,set(gca,'box','on')
图 11.3.3.1-1 带分格的封闭坐标轴
(2)在 MATLAB 指令窗中用以下 eval 指令可产生与图 11.3.3.1-1 相同的界面
eval('grid on,set(gca,''box'',''on'')')
剩余26页未读,继续阅读














安全验证
文档复制为VIP权益,开通VIP直接复制

评论0