MATLAB基础与编程入门 张威 第7章

上传人:E**** 文档编号:89356995 上传时间:2019-05-23 格式:PPT 页数:93 大小:1.50MB
返回 下载 相关 举报
MATLAB基础与编程入门   张威 第7章_第1页
第1页 / 共93页
MATLAB基础与编程入门   张威 第7章_第2页
第2页 / 共93页
MATLAB基础与编程入门   张威 第7章_第3页
第3页 / 共93页
MATLAB基础与编程入门   张威 第7章_第4页
第4页 / 共93页
MATLAB基础与编程入门   张威 第7章_第5页
第5页 / 共93页
点击查看更多>>
资源描述

《MATLAB基础与编程入门 张威 第7章》由会员分享,可在线阅读,更多相关《MATLAB基础与编程入门 张威 第7章(93页珍藏版)》请在金锄头文库上搜索。

1、第七章 GUIDE入门,7.1 概述 7.2 图形句柄入门 7.3 GUIDE工具入门 7.4 创建图形用户界面外观 7.5 图形用户界面编程 7.6 常用的图形界面函数 7.7 本章小结,7.1 概 述,MATLAB作为一种科学计算软件,其基本的功能需要通过M语言编程来实现。那么通过图形用户界面的形式来发布应用程序的好处就是可以允许程序的使用者不具备很深厚的MATLAB知识或者数学知识,只要用户熟悉了解计算机的基本操作就可以完成相应的计算。MATLAB的图形用户界面同流行的操作系统Windows、Unix或者Linux的图形界面类似,它使用这些平台上的统一外观作为自己的外观样式,它的图形用户

2、界面应用程序可以做到一处编写到处运行,只要相应的平台上具有MATLAB即可。,在MATLAB中创建图形用户界面的方法有两种图形句柄和GUIDE,这两种实现的方法都需要使用M语言编程,但是技术的侧重点不同。其实GUIDE创建图形用户界面的基础也是图形句柄对象,只不过是具有很好的封装,使用起来简便,而且还能够做到可视化的开发,对于一般的用户使用GUIDE创建图形用户界面应用程序已经足够了。MATLAB提供了基本的用户界面元素,包括菜单、快捷菜单、按钮、复选框、单选框、文本编辑框、静态文本、下拉列表框、列表框等。需要注意的是,MATLAB的图形用户界面程序大多数是对话框应用程序,利用MATLAB编写

3、文档视图应用程序相对来说比较困难。,使用GUIDE和图形句柄创建的图形用户界面的主要区别在于,利用图形句柄创建的图形界面应用程序只有一个文件M文件,而利用GUIDE创建的图形用户界面应用程序一般由两个文件组成,一个是应用程序文件M文件,另一个是外观文件fig文件。 MATLAB图形用户界面的例子非常多,不仅在MATLAB的Demos中有很多用户界面的例子,如图7-1所示,在MATLAB的工具箱中也有很多是利用GUIDE编写的小工具,不过早期的MATLAB工具多数都使用图形句柄进行开发。若MATLAB的图形用户界面功能不能够满足用户的需要,用户还可以利用Java语言的工程来扩充界面功能,不过使用

4、Java语言来扩充MATLAB的功能属于MATLAB外部接口编程的内容,有兴趣的读者可以参阅MATLAB的帮助文档或者MATLAB外部接口编程一书。,图7-1 MATLAB图形用户界面示例,通过如图7-1所示的界面,用户可以不必过多了解内部细节就可以使用MATLAB的强大数据可视化和计算的功能了。例如,单击用户界面右边的按钮,可以在图形窗体的绘图区域绘制各种图形,同时在文本显示区域显示具体命令行代码,如图7-2所示。,图7-2 显示具体的算法以及图形,7.2 图形句柄入门,在第六章中介绍了很多MATLAB可视化函数,这些函数都是将不同的曲线或者曲面绘制在图形窗体中,而图形窗体也就是由若干图形对

5、象组成的可视化的图形界面。在 MATLAB 环境中每一个图形对象都有一个相应的句柄,这些句柄帮助系统标识这些对象,获取或者设置它们的属性。理解图形对象句柄也是进行图形界面创建的前提之一,所以首先简要介绍图形对象句柄的概念,以及图形句柄的使用方法。,MATLAB的图形对象是按照一定的层次排列的,如图7-3所示。,图7-3 图形句柄的层次,在图7-3中,除了最上一层的屏幕(root)对象以外,每一种对象都具有自己的父层次对象,即对象的上一层次的对象,而自己下一层次的对象都被称为子对象。 具体来说,一个图形界面在Windows操作系统中的层次分布如图7-4所示。,图7-4 图形句柄的具体层次,在MA

6、TLAB中,只要获得了图形对象的句柄,就可以通过对属性的操作来修改图形对象的外观,这也是MATLAB图形用户界面编程的基本原理。MATLAB提供了若干函数用来对图形句柄进行操作,这其中较为常用的函数在表7-1中进行了总结。,表7-1 常用的图形句柄操作函数,例子7-1 使用图形句柄。 在MATLAB命令行窗口中,键入下面的指令: X = linspace(-pi,pi,25); Y = sin(X); plot(X,Y,rX); 这时的图形结果为红色的以“X”为符号的正弦曲线,如图7-5所示。,图7-5 绘制的原始图形,获取当前的曲线对象句柄: h_line = findobj(gca,Mar

7、ker,X) h_line = 3.0011 尽管这里h_line为一个双精度的数值,但这个数值变量具有特殊的意义,它代表了在当前坐标轴上绘制的曲线,可以通过这个变量来操作曲线对象,例如获取整个曲线的属性列表: get(h_line) Color = 1 0 0 EraseMode = normal,LineStyle = none LineWidth = 0.5 Marker = x MarkerSize = 6 MarkerEdgeColor = auto MarkerFaceColor = none XData = (1 by 25) double array YData = (1 by

8、 25) double array ZData = BeingDeleted = off ButtonDownFcn = Children = ,Clipping = on CreateFcn = DeleteFcn = BusyAction = queue HandleVisibility = on HitTest = on Interruptible = on Parent = 101.001 Selected = off SelectionHighlight = on Tag = Type = line UIContextMenu = UserData = Visible = on,这里

9、罗列了能够获取的图形对象的属性,现在获取具体的属性: h_line_parent = get(h_line,Parent); 上述命令行获得了曲线的父对象,即当前的坐标轴: isequal(h_line_parent,gca) ans = 1 设置曲线的属性: set(h_line,Color,1 1 1,MarkerSize,10);,上述的命令行将曲线设置为白色,同时将符号的大小设置为10,不过这个时候的坐标轴也是白色,所以看不出曲线。 设置坐标轴的属性: set(gca,Color,0,0,0) 这时坐标轴的背景色成为黑色,曲线的符号为白色,所以曲线可以被看到了。 set(gca,XGr

10、id,on,GridLineStyle,-.,XColor,0.75 0.75 0) set(gca,YGrid,on,GridLineStyle,-.,YColor,0 0.75 0.75),上述的两条指令将坐标轴的网格线绘制了出来,而且使用了点划线,分别设置了不同的颜色。 set(gcf,Color,0 0 1) 这条指令将整个图形窗体的背景色设置为蓝色,这样,所有的指令综合在一起得到的效果如图7-6所示。,图7-6 设置不同图形对象属性得到的结果,在MATLAB中,不同图形对象有不同的属性,由于受篇幅的限制,这里就不一一列举了,有兴趣的读者请参阅MATLAB的帮助文档。 从例子7-1中可

11、以看出MATLAB图形界面应用的基本过程,无论是利用GUIDE还是图形句柄来创建图形用户界面,其基本过程都是首先获取当前的图形对象句柄,然后利用get函数获取一些属性获取动作,再通过set函数设置一些属性完成响应。 除了能够直接设置具体图形对象的属性以外,MATLAB还允许用户对图形对象的默认属性进行修改。所谓图形对象的默认属性,就是那些MATLAB图形对象所固有的预定义的“出厂设置”,例如在默认的条件下图形窗体的背景色为深灰色,而坐标轴的背景色为白色等,在没有指定特殊的属性值之前,MATLAB就使用这些默认的图形对象属性来显示图形对象。,若需要修改MATLAB的默认属性,则使用下面的命令行:

12、 set(ancestor,Default,) 其中,ancestor为某一层次的图形对象句柄,若该句柄距离根对象越近,则影响的对象就越多,也就是说,若在根层次设置了默认属性,则所有的对象都继承这个默认属性,若在轴层次设置默认属性,则轴层次以下的对象继承该默认属性。下面举例说明设置对象默认属性的方法。,例子7-2 设置修改对象的默认属性。 本例子使用的脚本文件内容如下: 001 % 修改图形窗体默认背景色 002 set(0,DefaultFigureColor,1 1 1); 003 % 修改默认的坐标轴背景色 004 set(0,DefaultAxesColor,0 0 0); 005 %

13、 修改坐标线的色彩 006 set(0,DefaultAxesXColor,0.5 0 0); 007 set(0,DefaultAxesYColor,0.5 0 0); 008 % 修改文本的色彩,009 set(0,DefaultTextColor,0 0.5 0); 010 X = linspace(-pi,pi,25); 011 Y = sin(X); 012 plot(X,Y,yX); 013 grid on 014 title(Change The Default Properties); 015 legend(sin); 运行例子7-2的脚本文件,将修改部分对象的默认属性值,所以

14、得到的图形结果如图7-7所示。,图7-7 修改默认属性值后的显示效果,修改的默认属性在本次MATLAB会话期间都有效,若关闭了MATLAB再次启动之后,则这些默认的属性就会恢复“出厂设置”,所以,若希望设置的默认属性在每次启动MATLAB时都发挥作用,则需要在startup.m文件中添加修改默认设置的指令。注意例子7-2的代码,这里首先修改了默认属性值,然后再来进行图形的绘制。,提示: 如果希望将已经修改的默认属性值恢复成出厂设置,则可以使用下面的命令行: set(h, PropertyName, default) 或者 set(h, PropertyName, factory) set(h,

15、 PropertyName, remove),7.3 GUIDE工具入门,在MATLAB中创建图形用户界面有两种方法,其中之一是使用图形句柄,用这种方法创建图形界面的过程相当繁琐,而且在程序编写好之前,用户图形界面是不可见的。所以为了便于创建图形用户界面,MATLAB提供了一个开发环境,能够帮助用户创建图形用户界面,这就是GUIDEGraphic User Interface Development Environment。 在MATLAB中启动GUIDE的方法是在MATLAB命令行中键入指令: guide 或者通过“Start”菜单选择“MATLAB”下的“GUIDE”命令。,这时在MATL

16、AB 6.5中,将直接启动GUIDE Quick Start窗体,在这个窗体中,可以初步选择图形用户界面的类型,如图7-8所示。,图7-8 GUIDE的快速启动界面,在快速启动界面中,可以选择四种类型的新建界面: * 空白界面(Black GUI)。 * 具有图形控件的界面(GUI With Uicontrols)。 * 具有菜单和坐标轴的界面(GUI With Axes and Menu)。 * 模式对话框(Modal Question Dialog)。,其中,空白界面同早期版本的GUIDE图形用户界面一致。用户可以根据自己的需要选择不同的初始界面类型,以加快自己的开发任务。在本书中,仅讨论通过空白界面创建图形用户界面的方法,而其他的界面类型请参阅MATLAB的帮助文档。 除了能够创建新建的图形界面之外,还可以选择已经存

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

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号