我们热爱生命科学!-生物行

[推荐] Matlab GUI编程中文参考手册

时间:2006-01-11 15:51来源:Internet 作者:bioguider 点击: 1992次
用户界面(或接口)是指:人与机器(或程序)之间交互作用的工具和方法。如键盘、鼠标、跟踪球、话筒都可成为与计算机交换信息的接口。
 图形用户界面(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】对于传递函数为 的归一化二阶系统,制作一个能绘制该系统单位阶跃响应的图形用户界面。本例演示:(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);
 
图 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',...
   '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  输入标量阻尼比所得到的响应曲线


 
图 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>
 '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  创建用户菜单示例

(责任编辑:泉水)
顶一下
(19)
100%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片