当前位置:高等教育资讯网  >  中国高校课件下载中心  >  大学文库  >  浏览文档

《数字信号处理》教学参考资料(MATLAB 5手册)第14章 高级图形

资源类别:文库,文档格式:PDF,文档页数:56,文件大小:3.34MB,团购合买
14.1 图的结构 248 14.2 图形对象 250 14.2.1 通用函数 252 14.2.2 共有属性和方法 256 14.2.3 根对象 257 14.2.4 图形对象 258 14.2.5 轴对象 262 14.2.6 用户控制对象 267 14.2.7 用户菜单对象 269 14.2.8 用户快捷菜单对象 270 14.2.9 图像对象 272 14.2.10 线条对象 273 14.2.11 补片对象 274 14.2.12 曲面对象 277 14.2.13 文本对象 279 14.2.14 光对象 281 14.3 图形用户界面 283 14.3.1 控制面板 288 14.3.2 属性编辑器 289 14.3.3 对齐工具 291 14.3.4 事件过程编辑器 293 14.3.5 菜单编辑器 297 14.4 动画 301 14.4.1 介绍性示例 301 14.4.2 拷贝图形窗口 302 14.4.3 创建动画 302 14.4.4 演示动画 303
点击下载完整版文档(PDF)

China-pub.com 下载 第14章高级图形 MATLAB的图形系统是面向对象的,也就是说图形的输出,如曲线,是建立图形对象。 通常用户不必去关心这些高级MATLAB命令包含的对象。然而有时为了调整对象也要用一些 低级的MATLAB命令。 MATLAB中介绍了图形用户界面(GU的应用,如单选按钮、滑标和菜单。利用这些用户 能够很容易地进行图形控制。 在MATLAB中加入一系列的图片就可以创建出动画来,利用这些动画可以做一些有趣的演示。 14.1图的结构 一个图形是由许多的图形对象组成的,这些对象是以层次顺序保存的。举一个例子来说 明它们之间的关系。 ■例14.1 用不同线型绘制图形的例程。 clear; x=0.1:0.1:4*pi: 号生成向量x。 yl=sin(x); 号生成y1值。 y2=sin(x) ./x: 号生成y2值。 figure; 各创建一个新窗口。 subp1ot(1,2,1): 告定义第一个子图区域。 plot(x,yl); 号用实线画曲线。 subp1ot(1,2,2): 号定义第二个子图区域。 p1ot(x,y2,'*’): 号用*号画曲线。 上述命令在图形窗口的两个子域内画出了关于x的两个函数y1和y2的图形。结果如图14-1 所示。 图14-1用不同线型绘制的图形 ■

下载 第1 4章 高 级 图 形 M AT L A B的图形系统是面向对象的,也就是说图形的输出,如曲线,是建立图形对象。 通常用户不必去关心这些高级 M AT L A B命令包含的对象。然而有时为了调整对象也要用一些 低级的M AT L A B命令。 M AT L A B中介绍了图形用户界面 ( G U I )的应用,如单选按钮、滑标和菜单。利用这些用户 能够很容易地进行图形控制。 在M AT L A B中加入一系列的图片就可以创建出动画来,利用这些动画可以做一些有趣的演示。 14.1 图的结构 一个图形是由许多的图形对象组成的,这些对象是以层次顺序保存的。举一个例子来说 明它们之间的关系。 ■ 例1 4 . 1 用不同线型绘制图形的例程。 c l e a r ; x = 0 . 1 : 0 . 1 : 4 * p i ; % 生成向量x。 y 1 = s i n ( x ) ; % 生成y 1值。 y2=sin(x) ./x; % 生成y 2值。 f i g u r e ; % 创建一个新窗口。 subplot(1, 2, 1); % 定义第一个子图区域。 plot(x, y1); % 用实线画曲线。 subplot(1, 2, 2); % 定义第二个子图区域。 plot(x, y2, ’*’) ; % 用‘*’号画曲线。 上述命令在图形窗口的两个子域内画出了关于 x的两个函数y 1和y 2的图形。结果如图1 4 - 1 所示。 图14-1 用不同线型绘制的图形 ■

China-pub.coM 第14章高级图形 249 下载 个图形由安排在一个层次结构上的五个图形对象组成。 首先有一个窗口,这是一个图形对象。然后由两个轴对象来定 figure 义相应的坐标轴。这些都可以用subp1ot命令来完成。最后, 用p1ot命令来创建两个线条对象。例14.1中的对象层次结构在 axes axes 2 图14-2中给出。 对于每一个对象都可以修改它的一些属性。例如,可以改 变图形窗口的位置和图形对象的背景色。对于一个轴对象可以 line 1 line 2 改变它在图形区域内的刻度大小和位置。线条对象可以变得更 细,改变成另一种颜色,另一种线型等等。 图14-2对象层次结构 由于是层次结构,所以某个对象改变时,会影响到这个结构中它以下的所有对象。如果 使用鼠标改变图形对象的屏幕位置,线条和轴对象也会跟着变。但是如果改变右边轴对象的 轴刻度,那么只影响这个轴上的线条。 图14-2中还少一个对象:根对象。它是所有图形对象的根,也就是整个层次结构的根。 在创建对象的同时可以直接修改一些对象的属性。在画y2图形时,‘*号表示用星号来画 曲线而不是用实线。调用subplot可以规定图形区域在窗口的位置。然而还有许多属性只能 用在后面描述的st命令来改变。下面的例子修改了上例中图形的部分属性。 ■例14.2 %在上例中,改变左边子图区域的位置和第2个子图的x轴坐标 clear; x=0.1:0.1:4*p1; y1 sin(x); y2 sin(x)./x; fg figure; %创建窗口和图句柄 r1=subp1ot(1,2,1); %创建子图和轴句柄 11=p1ot(x,y1); %创建线条和线条句柄 r2=subp1ot(1,2,2); 12=p1ot(x,y2,’*); disp('The previous example'); pause; set(r1,'Position',[0.10.10.30.3]);%改变位置 set(11,'LineWidth',5); %加粗线条 set(r2,'XTick',[1411]); %改变x轴 set(12,'LineStyle','+'); %改变线型 pause; delete(fg); %删除窗口

一个图形由安排在一个层次结构上的五个图形对象组成。 首先有一个窗口,这是一个图形对象。然后由两个轴对象来定 义相应的坐标轴。这些都可以用 s u b p l o t命令来完成。最后, 用p l o t命令来创建两个线条对象。例1 4 . 1中的对象层次结构在 图1 4 - 2中给出。 对于每一个对象都可以修改它的一些属性。例如,可以改 变图形窗口的位置和图形对象的背景色。对于一个轴对象可以 改变它在图形区域内的刻度大小和位置。线条对象可以变得更 细,改变成另一种颜色,另一种线型等等。 由于是层次结构,所以某个对象改变时,会影响到这个结构中它以下的所有对象。如果 使用鼠标改变图形对象的屏幕位置,线条和轴对象也会跟着变。但是如果改变右边轴对象的 轴刻度,那么只影响这个轴上的线条。 图1 4 - 2中还少一个对象:根对象。它是所有图形对象的根,也就是整个层次结构的根。 在创建对象的同时可以直接修改一些对象的属性。在画 y 2图形时,‘ * ’号表示用星号来画 曲线而不是用实线。调用 s u b p l o t可以规定图形区域在窗口的位置。然而还有许多属性只能 用在后面描述的s e t命令来改变。下面的例子修改了上例中图形的部分属性。 ■ 例1 4 . 2 第1 4章 高 级 图 形 2 4 9 图14-2 对象层次结构 % 在上例中,改变左边子图区域的位置和第2个子图的X轴坐标 % 创建窗口和图句柄 % 创建子图和轴句柄 % 创建线条和线条句柄 % 改变位置 % 加粗线条 % 改变X轴 % 改变线型 % 删除窗口 下载

250 MATLAB5手册 China-pub.com 下载 在使用命令figure、subplot和p1ot时定义一个变量名来创建对象的句柄或者标识。 通过使用句柄可以用st命令来修改对象属性。在本例中修改对象的一个属性,改变了第1个子 图的位置和第2个子图中的x轴刻度值。现在得到的窗口如图14-3所示。 04 图14-3对图14-1修改一些属性后的图形 ■ 14.2图形对象 MATLAB5.2中的各种对象都列在表14-1中。 在图14-4中给出了对象的层次结构图。 在图14-5中给出了不同图形对象的例子。 父对象影响它所有的子对象,这些子对象又影响它们的子对象,以此类推。结果是轴对 象会影响像对象,但不影响用户界面控制。 根据表14-1可知,根对象的句柄值是零,而图形对象的句柄值是整数,其他对象则用浮 点值作为句柄值。 画一个对象,可以使用和对象名字的相同低级命令。如画一线条,可以用命令lie。 对象的属性有两类: ·属性,用来决定对象的显示和保存的数据。 ·方法,用来决定在对对象操作时调用什么样的函数,如当创建或者删除对象时,或当 用户点击它们时。 一些属性有缺省值,如果没有特殊说明,就是用这些缺省值。 有一些属性是用来规定对象色彩的,它们以RGB三元组的形式给出,也就是说,用一个有 三个元素的向量rgb](0≤r,g,b≤1)来表示颜色中的红、绿和蓝色,例如,用[1,0,0]表示红色。 也可以用预定义在MATLAB中表示颜色的字符串来代替RGB三元组,如black'和blue'。 在nelpdesk中的句柄图形对象给出各种不同类型对象的详细说明。MATLAB手册《使 用MATLAB图形和用MATLAB建立GUI》也可得到相关的信息。 表14-1图形对象 对 父代 描 述 root 屏幕是一个根对象。所有其他的图形对象都是根的子 对象。根对象的句柄值是零

在使用命令f i g u r e、s u b p l o t和p l o t时定义一个变量名来创建对象的句柄或者标识。 通过使用句柄可以用s e t命令来修改对象属性。在本例中修改对象的一个属性,改变了第 1个子 图的位置和第2个子图中的x轴刻度值。现在得到的窗口如图 1 4 - 3所示。 图14-3 对图1 4 - 1修改一些属性后的图形 14.2 图形对象 M ATLAB 5.2中的各种对象都列在表1 4 - 1中。 在图1 4 - 4中给出了对象的层次结构图。 在图1 4 - 5中给出了不同图形对象的例子。 父对象影响它所有的子对象,这些子对象又影响它们的子对象,以此类推。结果是轴对 象会影响像对象,但不影响用户界面控制。 根据表1 4 - 1可知,根对象的句柄值是零,而图形对象的句柄值是整数,其他对象则用浮 点值作为句柄值。 画一个对象,可以使用和对象名字的相同低级命令。如画一线条,可以用命令 l i n e。 对象的属性有两类: • 属性,用来决定对象的显示和保存的数据。 • 方法,用来决定在对对象操作时调用什么样的函数,如当创建或者删除对象时,或当 用户点击它们时。 一些属性有缺省值,如果没有特殊说明,就是用这些缺省值。 有一些属性是用来规定对象色彩的,它们以 R G B三元组的形式给出,也就是说,用一个有 三个元素的向量[r g b] ( 0≤r, g, b≤1)来表示颜色中的红、绿和蓝色,例如,用[1, 0, 0]表示红色。 也可以用预定义在M AT L A B中表示颜色的字符串来代替R G B三元组,如‘b l a c k’和‘b l u e’。 在h e l p d e s k中的句柄图形对象给出各种不同类型对象的详细说明。 M AT L A B手册《使 用M AT L A B图形和用M AT L A B建立G U I》也可得到相关的信息。 表14-1 图形对象 对 象 父 代 描 述 root — 屏幕是一个根对象。所有其他的图形对象都是根的子 对象。根对象的句柄值是零 2 5 0 M ATLAB 5 手册 下载 ■

China-pub.com 第14章高级图形 251 下载 (续) 对象 父代 描述 figure root 屏幕上的窗口是一个图形对象,对象的句柄值是整数, 在窗口的标题中给出 axes figure 轴对象在窗口中定义一个图形区域。可以用来描述子对 象的位置和方向 uicontrol figure 用户界面控制。当用户用鼠标在控制对象上点击时, MATLAB会完成一个相应规定的任务 uimenu figure 创建一个窗口菜单,用户用这些菜单能够控制程序 uicontext-menu figure 创建一个图形对象的快捷菜单。也就是当用户点击图形 对象时会显示出菜单来 image axes 用当前的色图矩阵定义一个图像。图像可以有自己的色图 line axes 用plot、plot3、contour和contour3创建一些简单的图形 patch axes 创建补片对象 surface axes 输入定义一个有四个角的曲面,可以用实线或内插颜色 来绘制,或者作为一个网格 text axes 字符串,它的位置由它的父对象一轴对象来指定 light axes 定义多边形或者曲面的光照 root figure uicontext- uicontrol axes uimenu menu image line urface patch text light 图14-4图形对象层次结构图 Figure Line Axes 2D Text Surface Axes 3D Patch 图14-5不同类型图形对象

(续) 对 象 父 代 描 述 f i g u r e r o o t 定屏幕上的窗口是一个图形对象,对象的句柄值是整数, 在窗口的标题中给出 a x e s f i g u r e 定轴对象在窗口中定义一个图形区域。可以用来描述子对 象的位置和方向 u i c o n t r o l f i g u r e 定用户界面控制。当用户用鼠标在控制对象上点击时, M AT L A B会完成一个相应规定的任务 u i m e n u f i g u r e 定创建一个窗口菜单,用户用这些菜单能够控制程序 u i c o n t e x t - m e n u f i g u r e 定创建一个图形对象的快捷菜单。也就是当用户点击图形 对象时会显示出菜单来 i m a g e a x e s 定用当前的色图矩阵定义一个图像。图像可以有自己的色图 l i n e a x e s 定用p l o t、p l o t 3、c o n t o u r和c o n t o u r 3创建一些简单的图形 p a t c h a x e s 定创建补片对象 s u r f a c e a x e s 定输入定义一个有四个角的曲面,可以用实线或内插颜色 来绘制,或者作为一个网格 t e x t a x e s 定字符串,它的位置由它的父对象—轴对象来指定 l i g h t a x e s 定定义多边形或者曲面的光照 图14-4 图形对象层次结构图 图14-5 不同类型图形对象 第1 4章 高 级 图 形 2 5 1 下载

252 MATLAB5手册 China-pub.com 下载 14.2.1通用函数 MATLAB有两个基本命令get和set用来处理图形对象。通过使用它们,可以给出和修 改所有对象的属性值。 ■例14.3 (a)创建一个图形窗口,它的句柄是gfp: gfp=figure; 先查看窗口使用的单位类型: get(gfp,'units') ans pixels 现在来改变窗口的大小和位置: set(gfp,'Position',[100 500 400 400]) 窗口的左下角移动到点(100,500)处,大小设置为400×400像素点。 (b)有些高级命令,如p1ot可以直接改变这些属性值。例如,例14.1中的曲面可以这样来画: plot(x,y1,'LineWidth',5); plot(x,y2,'LineStyle','+');or plot(x,y2,'+'); (c)如果想知道在set和gcf之间有哪些指针可以挑选使用:见命令集155。 set(gcf,'Pointer') crosshair I fullcrosshair I farrow}I ibeam I watch I topl I topr I botl I botr I left I top I right I bottom I circle I cross I fleur I custom 命令集154 通用对象函数 set(h,prstr,alt, 对向量h指向的对象设置其属性prstr为值alt,在它们之后 ··.) 还可以有几个属性。 set(h,a) 对向指向的对象设置其属性值。参数是一个结构,结构中的 域名是对象中可改变的属性名,域的值是赋予相应属性的新值。 set (h,pn,pv, 对向量h指向的对象设置其属性值。参数pn是一个包含可 ...) 改变的属性名的细胞向量,pV是一个包含设置新值的细胞 向量。在它们之后还可以有几个属性的细胞向量。 set(h,pn,pv) 对h(i)指向的对象设置名为pnU)属性的值为pv(i,j)。参数h 是一个包含对象句柄的向量,p是一个包含属性名的细胞 向量,pv是一个包含有m×n个值的细胞矩阵,m是h的长 度,n是pn的长度。这个变量可以单独地设置对象属性。 set(h) 将句柄h的对象所有可改变的属性返回在一个结构中,结 构的域名是这些属性的名字,域值是相应的属性值。 set(0,'Default') 检查对象属性的缺省值。返回一个结构,域名为

14.2.1 通用函数 M AT L A B有两个基本命令 g e t和s e t用来处理图形对象。通过使用它们,可以给出和修 改所有对象的属性值。 ■ 例1 4 . 3 (a) 创建一个图形窗口,它的句柄是 g f p: g f p = f i g u r e ; 先查看窗口使用的单位类型: 现在来改变窗口的大小和位置: 窗口的左下角移动到点( 1 0 0,5 0 0 )处,大小设置为4 0 0×4 0 0像素点。 (b) 有些高级命令,如p l o t可以直接改变这些属性值。例如,例1 4 . 1中的曲面可以这样来画: (c) 如果想知道在s e t和g c f之间有哪些指针可以挑选使用;见命令集 1 5 5。 命令集1 5 4 通用对象函数 s e t ( h , p r s t r , a l t , 对向量h指向的对象设置其属性p r s t r为值a l t,在它们之后 . . . ) 还可以有几个属性。 s e t ( h , a ) 对向量h指向的对象设置其属性值。参数a是一个结构,结构中的 域名是对象中可改变的属性名,域的值是赋予相应属性的新值。 s e t ( h , p n , p v , 对向量h指向的对象设置其属性值。参数 p n是一个包含可 . . . ) 改变的属性名的细胞向量, p v是一个包含设置新值的细胞 向量。在它们之后还可以有几个属性的细胞向量。 s e t ( h , p n , p v ) 对h(i)指向的对象设置名为p n(j)属性的值为p v(i, j)。参数h 是一个包含对象句柄的向量, p n是一个包含属性名的细胞 向量,p v是一个包含有 m×n个值的细胞矩阵, m是h的长 度,n是p n的长度。这个变量可以单独地设置对象属性。 s e t ( h ) 将句柄h的对象所有可改变的属性返回在一个结构中,结 构的域名是这些属性的名字,域值是相应的属性值。 s e t ( 0 ,’D e f a u l t’) 检 查 对 象 属 性 的 缺 省 值 。 返 回 一 个 结 构 , 域 名 为 2 5 2 M ATLAB 5 手册 下载 ■

China-pub.com 第14章高级图形 253 下载 ObjectNamePropertyName',域值是相应的属性缺省值。 注意:只返回值为字符串的属性。 set(O,'DefaultObject返回一个细胞向量,它包含有对象名为ObjectName、属性 NamePropertyName') 名为PropertyName的缺省值。注意:只返回值为字符 串的属性。 set(h,prstr) 返回一个细胞向量,包含句柄h的对象中属性名为prstri的 所有可能值。 get(h) 列出句柄的对象所有属性和相应的值。所有这些都返回在 一个结构中,域名为属性的名字,域值为相应的属性值。 get(h,prstr) 返回句柄h的对象且属性名为prstr的当前值。 get(h,pn) 返回一个细胞矩阵,元素(位,j)的值是句柄h(i)的对象且属 性名为pnG)的属性值。参数pn是一个细胞向量,h是一个 包含句柄的向量。 get(0,'Factory') 返回所有对象类型的所有属性的厂家设置值,用户可以改变它 们的缺省值。厂家设置值返回在一个结构中,域名为 ObjectNamePropertyName',域值为相应属性的厂家设置值。 get(O,'Factoryobject返回对象objectName中属性PropertyNamef的厂家设 NamePropertyName') 置值。 get(0,'Default') 检查有缺省值的对象。结果返回在一个结构中,域名为 ObjectNamePropertyName',域值为相应属性的缺省值。 get(0,'Defaultobject 返回对象ObjectName的属性PropertyName的缺省值。 NamePropertyName') allchild(h) 返回句柄的对象中所有子对象的句柄。隐含句柄也返回,见 表142中Handlevisibility’'。如h是一个标量句柄,则返 回得到一个向量。如知是一个向量,则返回一个细胞矩阵。 findobj 返回一个根对象和它的所有子对象的句柄向量。 findobj(h,prstr,alt,如果给出参数prstr和ali,则返回一个向量,包含将属性 .) prstr设置为alt的所有对象的句柄。在它们之后还可以写 上几个属性。如果给出参数h,就限制在h中的对象和它们 的子对象中搜索。如果没有给出prstr和alt,则返回一个 包含向量h中的对象的子对象句柄向量。 findobj(h,'flat', 同上,但是不检查对象的子对象。 prstr,alt,··.) findall(h) 和findobj(h)相似,而且还返回子对象的隐含句柄,见 表14-2中Handlevisibi1ity'。 copyobj(h,p) 复制对象和它们的子对象。向量勤中包含要复制的对象句柄, 向量即中包含的它们父对象的句柄。这些父对象的类型必须和 原来的父对象相同。函数返回一个包含新对象的句柄向量。 ishandle(h) 检查向量h中的元素是否是对象的句柄。函数返回元素是0

‘O b j e c t N a m e P r o p e r t y N a m e’,域值是相应的属性缺省值。 注意:只返回值为字符串的属性。 s e t ( 0 , ’ D e f a u l t O b j e c t 返回一个细胞向量,它包含有对象名为O b j e c t N a m e、属性 N a m e P r o p e r t y N a m e ’ ) 名为P r o p e r t y N a m e的缺省值。注意:只返回值为字符 串的属性。 s e t ( h , p r s t r ) 返回一个细胞向量,包含句柄 h的对象中属性名为 p r s t r的 所有可能值。 g e t ( h ) 列出句柄h的对象所有属性和相应的值。所有这些都返回在 一个结构中,域名为属性的名字,域值为相应的属性值。 g e t ( h , p r s t r ) 返回句柄h的对象且属性名为p r s t r的当前值。 g e t ( h , p n ) 返回一个细胞矩阵,元素 (i, j)的值是句柄 h(i)的对象且属 性名为p n(j)的属性值。参数 p n是一个细胞向量, h是一个 包含句柄的向量。 g e t ( 0 , ’ F a c t o r y ’ ) 返回所有对象类型的所有属性的厂家设置值,用户可以改变它 们的缺省值。厂家设置值返回在一个结构中,域名为 ‘O b j e c t N a m e P r o p e r t y N a m e’,域值为相应属性的厂家设置值。 g e t ( 0 ,’F a c t o r y O b j e c t 返回对象O b j e c t N a m e中属性P r o p e r t y N a m e的厂家设 N a m e P r o p e r t y N a m e ’ ) 置值。 g e t ( 0 , ’ D e f a u l t ’ ) 检查有缺省值的对象。结果返回在一个结构中,域名为 ‘O b j e c t N a m e P r o p e r t y N a m e’,域值为相应属性的缺省值。 g e t ( 0 , ’ D e f a u l t O b j e c t 返回对象O b j e c t N a m e的属性P r o p e r t y N a m e的缺省值。 N a m e P r o p e r t y N a m e ’ ) a l l c h i l d ( h ) 返回句柄h(i)的对象中所有子对象的句柄。隐含句柄也返回,见 表1 4 - 2中‘H a n d l e V i s i b i l i t y’。如果h是一个标量句柄,则返 回得到一个向量。如果h是一个向量,则返回一个细胞矩阵。 f i n d o b j 返回一个根对象和它的所有子对象的句柄向量。 f i n d o b j ( h , p r s t r ,a l t, 如果给出参数p r s t r和a l t,则返回一个向量,包含将属性 . . . ) p r s t r设置为a l t的所有对象的句柄。在它们之后还可以写 上几个属性。如果给出参数 h,就限制在h中的对象和它们 的子对象中搜索。如果没有给出 p r s t r和a l t,则返回一个 包含向量h中的对象的子对象句柄向量。 f i n d o b j (h, ’f l a t’ , 同上,但是不检查对象的子对象。 p r s t r , a l t ,. . .) f i n d a l l ( h ) 和f i n d o b j ( h )相似,而且还返回子对象的隐含句柄,见 表1 4 - 2中‘H a n d l e V i s i b i l i t y’。 c o p y o b j ( h , p ) 复制对象和它们的子对象。向量h中包含要复制的对象句柄, 向量p中包含的它们父对象的句柄。这些父对象的类型必须和 原来的父对象相同。函数返回一个包含新对象的句柄向量。 i s h a n d l e ( h ) 检查向量h中的元素是否是对象的句柄。函数返回元素是 0 第1 4章 高 级 图 形 2 5 3 下载

254 MATLAB5手册 China-pub.com 下载 和1的向量。如果h中的元素是一个对象的句柄,则在向量 的相应位置为1:否则为0 setuprop(h,prstr,val)用户可以对图和轴类型的对象定义新的属性。在字符串 prstri中给出句柄为h的对象新属性,属性值设置为值val, prstr和val可以为任何值。除非属性prstr已经存在,否则 就新建。 getuprop(h,prstr) 获取句柄为h的图形对象或者轴对象中用户自定义的属性 prstr的属性值。 clruprop(h,prstr) 删除句柄为h的图形对象或者轴对象中用户自定义的属性 prstro handle2struct(h) 将向量h中的句柄对象层次变换成一个结构,这个结构有 如下的域: .type 对象的类型。 properties包含属性值的一个结构。 children 一个结构矩阵,元素是句柄向量h中的对象的 每个子对象。 handle 对象的句柄。 .special 非文件式成员。 struct2handle(s) 命令nandle2 struct的逆操作:将结构变换成对象的层次。 MATLAB5有一个名为propedit的工具,是属性编辑器。这个编辑器比低级命令set和 get用起来更方便。在建立图形用户界面时,这个工具显得更加有用,见命令集170。 而且,还有三个函数可以获取当前图形对象的句柄。 命令集155 当前对象 gcf 获取当前图形对象的句柄。 gca 获取当前轴对象的句柄。 gco(h) 获取当前对象的句柄,也就是鼠标最后点击的对象。如果给出 了h,则获取句柄为h的窗口中当前对象的句柄。 ■例14.4 下面的命令用来获取当前窗口和轴的属性: get(gcf); 号获取当前图形对象的属性。 get(gca); 号获取当前轴对象的属性。 ■例14.5 也可用subploti命令移动对象。假设有两个子图,一个是牙刷,另一个是牙膏,如图-6所示。 要获取下图的位置,可以输入:

和1的向量。如果h中的元素是一个对象的句柄,则在向量 的相应位置为1;否则为0 s e t u p r o p ( h , p r s t r , v a l )用户可以对图和轴类型的对象定义新的属性。在字符串 p r s t r中给出句柄为 h的对象新属性,属性值设置为值 v a l, p r s t r和v a l可以为任何值。除非属性 p r s t r已经存在,否则 就新建。 g e t u p r o p ( h , p r s t r ) 获取句柄为 h的图形对象或者轴对象中用户自定义的属性 p r s t r的属性值。 c l r u p r o p ( h , p r s t r ) 删除句柄为 h的图形对象或者轴对象中用户自定义的属性 p r s t r。 h a n d l e 2 s t r u c t ( h ) 将向量 h中的句柄对象层次变换成一个结构,这个结构有 如下的域: .t y p e 对象的类型。 .p ro p e rt i e s 包含属性值的一个结构。 .c h i l d re n 一个结构矩阵,元素是句柄向量 h中的对象的 每个子对象。 .h a n d l e 对象的句柄。 .s p e c i a l 非文件式成员。 s t r u c t 2 h a n d l e ( s ) 命令h a n d l e 2 s t r u c t的逆操作:将结构s变换成对象的层次。 M ATLAB 5有一个名为p r o p e d i t的工具,是属性编辑器。这个编辑器比低级命令 s e t和 g e t用起来更方便。在建立图形用户界面时,这个工具显得更加有用,见命令集 1 7 0。 而且,还有三个函数可以获取当前图形对象的句柄。 命令集1 5 5 当前对象 g c f 获取当前图形对象的句柄。 g c a 获取当前轴对象的句柄。 g c o ( h ) 获取当前对象的句柄,也就是鼠标最后点击的对象。如果给出 了h,则获取句柄为h的窗口中当前对象的句柄。 ■ 例1 4 . 4 下面的命令用来获取当前窗口和轴的属性: g e t ( g c f ) ; % 获取当前图形对象的属性。 g e t ( g c a ) ; % 获取当前轴对象的属性。 ■ 例1 4 . 5 也可用s u b p l o t命令移动对象。假设有两个子图,一个是牙刷,另一个是牙膏,如图1 4 - 6所示。 要获取下图的位置,可以输入: 2 5 4 M ATLAB 5 手册 下载 ■

China-pub.com 第14章高级图形 255 下载 subplot(2,1,2); get(gca,'Position') ans 0.13000.11000.77500.3400 移动对象,可以输入: set(gca,'Posit1on',[0.150.490.7750.34]) 得到图14-7。这样轴对象就放在另一个图的上面。 0.102a3405BQ7cn9 图14-6 subplot创建的两个轴对象 图147将牙音放在牙刷上的操作 还有一些函数用来删除对象、恢复缺省值和保存对象到文件中。 命令集156 其他通用函数 clf 清除当前窗口。 clf reset 清除当前窗口,除Position、Units、PaperPosition和 PaperUnits外,重新设置所有图形对象的属性,见表14-6. cla 删除当前坐标系。 cla reset 删除当前坐标系。除Position和Units外,重新设置所有 轴对象的属性,见表14-10。 rotate(h,ax,a,o)计算对象h中角a绕轴ax旋转的角度,可选参数o给出旋转的 起始位置,缺省值为[000]。 remapfig(pos, 将子对象移动到具有句柄fig的图形对象中。由pos规定内部 newpos,fig,h) 区域大小的每个子对象移动到newpos规定的新位置。参数 pos和newpos都是这样的形式[left bottom width height]。一个 轴对象的整个区域为[0011]。如果没有指定fg,就使用缺 省值。如果给出h,则只移动向量h中的子对象。 reset(h) 恢复具有句柄h的窗口(图形对象)或者坐标系轴对象)的缺省值。 delete(h) 删除具有句柄h的对象。 close(h) 关闭当前窗口。如果给出h,则关闭h中的窗口。参数h可以 是一个标量,也可以是包含有轴对象句柄的向量或者矩阵。 close name 关闭名为name的窗口

移动对象,可以输入: 得到图1 4 - 7。这样轴对象就放在另一个图的上面。 还有一些函数用来删除对象、恢复缺省值和保存对象到文件中。 命令集1 5 6 其他通用函数 c l f 清除当前窗口。 clf reset 清除当前窗口,除P o s i t i o n、U n i t s、P a p e r P o s i t i o n和 P a p e r U n i t s外,重新设置所有图形对象的属性,见表1 4 - 6。 c l a 删除当前坐标系。 cla reset 删除当前坐标系。除 P o s i t i o n和U n i t s外,重新设置所有 轴对象的属性,见表1 4 - 1 0。 r o t a t e ( h , a x , a ,o) 计算对象 h中角a绕轴a x旋转的角度,可选参数 o给出旋转的 起始位置,缺省值为[0 0 0]。 r e m a p f i g ( p o s , 将子对象移动到具有句柄f i g的图形对象中。由p o s规定内部 n e w p o s , f i g ,h) 区域大小的每个子对象移动到 n e w p o s规定的新位置。参数 p o s和n e w p o s都是这样的形式[left bottom width height]。一个 轴对象的整个区域为 [0 0 1 1]。如果没有指定 f i g,就使用缺 省值。如果给出h,则只移动向量h中的子对象。 r e s e t ( h ) 恢复具有句柄h的窗口(图形对象)或者坐标系(轴对象)的缺省值。 d e l e t e ( h ) 删除具有句柄h的对象。 c l o s e ( h ) 关闭当前窗口。如果给出 h,则关闭 h中的窗口。参数 h可以 是一个标量,也可以是包含有轴对象句柄的向量或者矩阵。 close name 关闭名为n a m e的窗口。 第1 4章 高 级 图 形 2 5 5 下载 图14-6 subplot创建的两个轴对象 图14-7 将牙膏放在牙刷上的操作 ■

256 MATLAB5手册 China-pub.coM 下载 close all 关闭所有没有隐含句柄的窗口,隐含句柄可通过属性 Hand1 evisibi1ity来设置,见表14-2。 close all hidden 关闭所有窗口,包括有隐含句柄的窗口。 status-=close(,··)如果相应的窗口已关闭,则令status为l:否则为0。 hgsave(h,filename) 将具有句柄h的对象及其他的子对象保存到文件filenamer中。 如果filename缺少后缀名,则加上.fig。 hgload(filename) 从文件filename中读取对象和它的子对象(如果有的话)。如果 filename缺少后缀名,则加上fig。最后返回读取对象的句柄。 14.2.2共有属性和方法 由于继承,对于所有类型的对象有一些相同的属性和方法。然而这些当中有一部分对有 些对象来说是没有意义的:见属性表和每种类型对象的方法。 表14-2共有属性和方法 ButtonDownFcn 当对象被鼠标选择时,返回MATLAB回调字符串 Children 对象的所有子对象句柄的向量 clipping 数据限幅模式,‘o'(缺省值):只显示在坐标轴界限内的部分图形对 象:oEE':没有这个限制,也显示坐标轴外的部分 CreateFcn 决定用什么样的M文件或者MATLAB命令来创建对象。这必须用缺省值, 例如创建一个图形对象: set(0,'DefaultFigurecreateFcfunction}其中字符串 function是M文件名或者MATLAB命令 DeleteFcn 决定删除对象时运行的M文件或者MATLAB命令 BusyAction MATLAB处理对象的回调函数中断方式。如果将Interruptible(见 下面命令),设置为off',BusyAction可以有下面几种情况: queue' (缺省值)将回调函数的中断请求放入一个挂起队列中直 到对象的回调函数完成 ‘cancel' 忽略其他回调函数所有可能的中断 Handlevisibility 对象的子对象列表中的对象句柄是否可访问:见Children on' (缺省值)总是可访问 ‘ca11back' 只有回调函数或者调用回调函数的函数可以访问,这样 防止用户从命令行中对对象进行修改 “off" 不可访问 HitTest 对象是否被鼠标选中,也就是这个对象是否为当前对象。H1 tTest可以 设置为‘on'(缺省值)或者‘off'。也可参见命令集155中的命令gco和 表14-7中的轴对象属性Currentobject. Interruptible 指定对象回调字符串是否可中断。如果Interruptible是‘on'(缺 省值),则该对象回调函数可以被其他回调中断。如果Interruptible是 “off',则该对象回调函数不能被其他回调中断 Parent 对象的父对象句柄

2 5 6 M ATLAB 5 手册 close all 关闭所有没有隐含句柄的窗口,隐含句柄可通过属性 H a n d l e V i s i b i l i t y来设置,见表1 4 - 2。 close all hidden 关闭所有窗口,包括有隐含句柄的窗口。 s t a t u s = c l o s e (. . .) 如果相应的窗口已关闭,则令 s t a t u s为1;否则为0。 h g s a v e ( h , f i l e n a m e ) 将具有句柄 h的对象及其他的子对象保存到文件 f i l e n a m e中。 如果f i l e n a m e缺少后缀名,则加上.f i g。 h g l o a d ( f i l e n a m e ) 从文件f i l e n a m e中读取对象和它的子对象(如果有的话)。如果 f i l e n a m e缺少后缀名,则加上.f i g。最后返回读取对象的句柄。 14.2.2 共有属性和方法 由于继承,对于所有类型的对象有一些相同的属性和方法。然而这些当中有一部分对有 些对象来说是没有意义的;见属性表和每种类型对象的方法。 表14-2 共有属性和方法 B u t t o n D o w n F c n 当当对象被鼠标选择时,返回 M AT L A B回调字符串 C h i l d r e n 当对象的所有子对象句柄的向量 C l i p p i n g 当数据限幅模式, ‘o n’(缺省值):只显示在坐标轴界限内的部分图形对 象;‘o f f’:没有这个限制,也显示坐标轴外的部分 C r e a t e F c n 当决定用什么样的M文件或者M AT L A B命令来创建对象。这必须用缺省值, 例如创建一个图形对象: 当set(0,’DefaultFigureCreateFcn’, function),其中字符串 f u n c t i o n是M文件名或者M AT L A B命令 D e l e t e F c n 当决定删除对象时运行的M文件或者M AT L AB命令 B u s y A c t i o n 当M AT L A B处理对象的回调函数中断方式。如果将 I n t e r r u p t i b l e (见 下面命令),设置为‘o f f’,B u s y A c t i o n可以有下面几种情况: 当‘q u e u e’ (缺省值)将回调函数的中断请求放入一个挂起队列中直 到对象的回调函数完成 ‘c a n c e l’ 忽略其他回调函数所有可能的中断 H a n d l e V i s i b i l i t y 当对象的子对象列表中的对象句柄是否可访问;见 C h i l d r e n ‘o n’ (缺省值)总是可访问 ‘c a l l b a c k’ 只有回调函数或者调用回调函数的函数可以访问,这样 防止用户从命令行中对对象进行修改 ‘o f f’ 不可访问 H i t T e s t 当对象是否被鼠标选中,也就是这个对象是否为当前对象。 H i t T e s t可以 设置为‘o n’(缺省值)或者‘o f f’。也可参见命令集 1 5 5中的命令g c o和 表1 4 - 7中的轴对象属性C u r r e n t O b j e c t。 Interruptible 当指定对象回调字符串是否可中断。如果 I n t e r r u p t i b l e是‘o n’(缺 省值),则该对象回调函数可以被其他回调中断。如果 I n t e r r u p t i b l e是 ‘o f f’,则该对象回调函数不能被其他回调中断 Parent 当对象的父对象句柄 下载

China-bub.com 第14章高级图形 257 下载 续) Selected 对象是否被选中,值可以为‘on'或者off selectionHighlight 在屏幕上选中的对象是否有四个边句柄和四个点句柄。值可以为‘o'(缺省 值)或者off Tag 用户用来标识对象的字符串,在建立图形接口时这很有用 Type 只读对象类型的字符串 UserData 是一个矩阵,包含有用户要在对象中保存的数据。矩阵不被对象本身使用 UIContextMenu 和对象相联的快捷菜单句柄。当在对象上按下鼠标右键时,MATLAB显示出 快捷菜单。见14.2.8节 visible 控制对象在屏幕是否可见。值可以为on'(缺省值)或者'of 14.2.3根对象 上面提到屏幕是一个根对象,它是所有其他对象的父对象。MATLAB中可以用set和get设 置和获取它的一些属性。根对象有如下的属性和方法。 表14-3根对象的常用属性和方法 Automatic-FileUpdates 值可为‘on’或者off',它的使用是非文件式的 Callbackobject 获取正在执行的回调函数的对象句柄。如果没有回调函数在执行,则返回 []。也可参见命令集171中的命令gcob Language 系统环境变量,它的使用是非文件式的 CurrentFigure 获取当前图形对象的句柄。如果不存在图形对象,则返回[]。也可参见命 令集155中的命令gcf Diary 一个决定是否将命令窗口中的输入输出存入文件的字符串。值可为“o 或者“off’(缺省值) DiaryFile 一个表示保存输入输出文件名的字符串,见Diary Echo 在文件执行时,是否显示M文件的每一行。值可为on‘或者oEf'(缺省值) ErrorMessage 包含MATLAB最近一次错误信息的字符串 Format 控制MATLAB数字显示格式的字符串。可选择的值有:‘short'、 shortE'(缺省值)、shortG'、1ong'、1ongE'、longG'、bank'、 hex'、+'和‘rational Formatspacing 控制MATLAB在命令窗口中输出间隔行的字符串。值可以为1oose'(缺 省值)和compact' PointerLocation 相对屏幕左下角指针的当前位置向量。 Pointerwindow 含有鼠标指针的图形只读句柄。如果鼠标不在任何MATLAB图形窗口中, 则值为0 Profile 决定是否使用prof1le工具的字符串。当程序执行时,这个工具可以测出 程序的不同部分运行所需的时间。值可以为o'或者off'(缺省值) ProfileFile 控制profile数据保存到什么样的文件中(见上) ProfileCount 是一个包含profile数据的n×1向量。向量中的元素k是M文件在运行时 在k行找到profile工具的次数 ProfileInterval 在一定时间间隔内,profile工具检查正在运行的脚本文件的行数 RecursionLimit 限定嵌套递归的次数。如果超过这个次数,MATLAB会给出一个错误信息 ScreenDepth 整数,指定以比特为单位的屏幕颜色深度

(续) Selected 当对象是否被选中,值可以为 ‘o n’或者‘o f f’ SelectionHighlight 当在屏幕上选中的对象是否有四个边句柄和四个点句柄。值可以为 ‘o n’(缺省 值)或者‘o f f’ T a g 当用户用来标识对象的字符串,在建立图形接口时这很有用 T y p e 当只读对象类型的字符串 UserData 当是一个矩阵,包含有用户要在对象中保存的数据。矩阵不被对象本身使用 U I C o n t e x t M e n u 当和对象相联的快捷菜单句柄。当在对象上按下鼠标右键时, M AT L A B显示出 快捷菜单。见1 4 . 2 . 8节 V i s i b l e 当控制对象在屏幕是否可见。值可以为 ‘o n’(缺省值)或者’o f f’ 14.2.3 根对象 上面提到屏幕是一个根对象,它是所有其他对象的父对象。 M AT L A B中可以用s e t和g e t设 置和获取它的一些属性。根对象有如下的属性和方法。 表14-3 根对象的常用属性和方法 Automatic-FileUpdates 值值可为‘o n’或者‘o f f’,它的使用是非文件式的 C a l l b a c k O b j e c t 值获取正在执行的回调函数的对象句柄。如果没有回调函数在执行,则返回 [ ]。也可参见命令集1 7 1中的命令g c o b L a n g u a g e 值系统环境变量,它的使用是非文件式的 C u r r e n t F i g u r e 值获取当前图形对象的句柄。如果不存在图形对象,则返回 [ ]。也可参见命 令集1 5 5中的命令g c f D i a r y 值一个决定是否将命令窗口中的输入输出存入文件的字符串。值可为 ‘o n’ 或者‘o f f’(缺省值) D i a r y F i l e 值一个表示保存输入输出文件名的字符串,见 D i a r y Echo 值在文件执行时,是否显示M文件的每一行。值可为‘o n‘或者‘o f f’(缺省值) ErrorMessage 值包含M AT L A B最近一次错误信息的字符串 Format 值控制M AT L A B数字显示格式的字符串。可选择的值有: ‘s h o r t’、 ‘s h o r t E’(缺省值)、‘s h o r t G’、‘l o n g’、‘l o n g E’、‘l o n g G’、‘b a n k’、 ‘h e x’、‘+’和‘r a t i o n a l’ FormatSpacing 值控制M AT L A B在命令窗口中输出间隔行的字符串。值可以为 ‘l o o s e’(缺 省值)和‘c o m p a c t’ PointerLocation 值相对屏幕左下角指针的当前位置向量。 PointerWindow 值含有鼠标指针的图形只读句柄。如果鼠标不在任何 M AT L A B图形窗口中, 则值为0 Profile 值决定是否使用p r o f i l e工具的字符串。当程序执行时,这个工具可以测出 程序的不同部分运行所需的时间。值可以为 ‘o n’或者‘o f f’(缺省值) ProfileFile 值控制p r o f i l e数据保存到什么样的文件中(见上) ProfileCount 值是一个包含p r o f i l e数据的n×1向量。向量中的元素k是M文件在运行时 在k行找到p r o f i l e工具的次数 P r o f i l e I n t e r V a l 值在一定时间间隔内,p r o f i l e工具检查正在运行的脚本文件的行数 RecursionLimit 值限定嵌套递归的次数。如果超过这个次数, M AT L A B会给出一个错误信息 ScreenDepth 值整数,指定以比特为单位的屏幕颜色深度 第1 4章 高 级 图 形 2 5 7 下载

点击下载完整版文档(PDF)VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
共56页,可试读19页,点击继续阅读 ↓↓
相关文档

关于我们|帮助中心|下载说明|相关软件|意见反馈|联系我们

Copyright © 2008-现在 cucdc.com 高等教育资讯网 版权所有