登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

我的博客

电子信息学习 资料共享

 
 
 

日志

 
 

7.3 通用图形函数命令  

2009-05-10 07:47:36|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

 

7.3.1  图形对象句柄命令

命令1  figure

功能  创建一个新的图形对象。图形对象为在屏幕上单独的窗口,在窗口中可以输出图形。

用法  figure 用缺省的属性值创建一个新的图形对象。

      figure('PropertyName',PropertyValue,…) 对指定的属性PropertyName用指定的属性值PropertyValue(属性名与属性值成对出现)创建一个新的图形窗口,对于那些没有指定的属性,则用缺省值。属性名与有效的属性值见下表。

      figure(h) 1. 若h为一个已经存在的图形的句柄,则figure(h)使由h标记的图形成为当前图形,使它可见,且在屏幕上把它显示到所有图形之前。当前图形为图像输出的地方。

              2. 若h不是已经存在图形的句柄,但是为一整数,则该命令生成一图形窗口,同时把该窗口的句柄赋值为h;若h不是一图形窗口的句柄,也不是一整数,则返回一错误信息。

      h = figure(…) 返回图形窗口对象的句柄给h。

表7-10

属性名

属性说明

有效属性值

窗口位置

Position

图形窗口的位置与大小

有效值:四维向量[left,bottom,

        width,height]

缺省值:决定于显示

Units

用于解释属性Position的单位

有效值:inches(英寸)

centimeters(厘米)

normalized(标准化单位,认为窗口为一长宽都是1)

points(点)

pixels(像素)

characters(字符)

缺省值:pixels

指定类型与外在显示

Color

窗口的背景颜色

有效值:ColorSpec(有效的颜色 参数)

缺省值:取决于颜色表(参见命令colordef)

Menubar

转换图形窗口菜单条的“开”与“关”

有效值:none、figure

缺省值:figure

Name

显示图形窗口的标题

有效值:任意字符串

缺省值:‘’(空字符串)

NumberTitle

标题栏中是否显示’Figure No. n’,其中n为图形窗口的编号

有效值:on、off

缺省值:on

Resize

指定图形窗口是否可以通过鼠标改变大小

有效值:on、off

缺省值:on

SelectionHighlight

当图形窗口被选中时,是否突出显示

有效值:on、off

缺省值:on

Visible

确定图形窗口是否可见

有效值:on、off

缺省值:on

WindowStyle

指定窗口为标准窗口还是典型窗口

有效值:normal(标准窗口)、

        modal(典型窗口)

缺省值:normal

控制色图

Colormap

图形窗口的色图

有效值:m*3阶的RGB颜色矩阵

缺省值:jet色图

Dithermap

用于真颜色数据以伪颜色显示的色图

有效值:m*3阶的RGB颜色矩阵

缺省值:有所有颜色的色图

DithermapMode

是否使用系统生成的抖动色图

有效值:auto、manual

缺省值:manual

FixedColors

不是从色图中获得的颜色

有效值:m*3阶的RGB颜色矩阵

缺省值:无(只读模式)

MinColormap

系统颜色表中能使用的最少颜色数

有效值:任一标量

缺省值:64

ShareColors

允许MATLAB共享系统颜色表中的颜色

有效值:on、off

缺省值:on

指定透明度

Alphamap

图形窗口的α色图,用于设定透明度。

有效值:m*1维向量,每一分量在[0 1]之间

缺省值:64*1维向量

指定渲染模式

BackingStore

打开或关闭屏幕像素缓冲区

有效值:on、off

缺省值:on

DoubleBuffer

对于简单的动画渲染是否使用快速缓冲

有效值:on、off

缺省值:off

Renderer

用于屏幕和图片的渲染模式

有效值:painters、zbuffer、OpenGL

缺省值:系统自动选择

关于图形窗口的一般信息

Children

显示于图形窗口中的任意对象句柄

有效值:句柄向量

 

FileName

命令guide使用的文件名

有效值:字符串

Parent

图形窗口的父对象:根屏幕

有效值:总是0(即根屏幕)

Selected

是否显示窗口的“选中”状态

有效值:on、off

缺省值:on

Tag

用户指定的图形窗口标签

有效值:任意字符串

缺省值:'  '(空字符串)

Type

图形对象的类型(只读类型)

有效值:'figure'

UserData

用户指定的数据

有效值:任一矩阵

缺省值:[](空矩阵)

RendererMode

缺省的或用户指定的渲染程序

有效值:auto、manual

缺省值:auto

关于当前状态的信息

CurrentAxes

在图形窗口中的当前坐标轴的句柄

有效值:坐标轴句柄

CurrentCharacter

在图形窗口中最后一个输入的字符

有效值:单个字符

CurrentOject

图形窗口中的当前对象的句柄

有效值:图形对象句柄

CurrentPoint

图形窗口中最后单击的按钮的位置

有效值:二维向量[x-coord,

                    y-coord]

SelectionType

鼠标选取类型

有效值:normal、extended、alt、open

回调程序的执行

BusyAction

指定如何处理中断调用程序

有效值:cancel、queue

缺省值:queue

ButtonDownFcn

当在窗口中空闲点按下鼠标按钮时,执行的回调程序

有效值:字符串

缺省值:'  '(空字符串)

CloseRequestFcn

当执行命令关闭时,定义一回调程序

有效值:字符串

缺省值:closereq

CreateFcn

当打开一图形窗口时,定义一回调程序

有效值:字符串

缺省值:'  '(空字符串)

DeleteFcn

当删除一图形窗口时,定义一回调程序

有效值:字符串

缺省值:'  '(空字符串)

Interruptible

定义一回调程序是否可中断

有效值:on、off

缺省值:on(可以中断)

KeyPressFcn

当在图形窗口中按下一键时,定义一回调程序

有效值:字符串

缺省值:'  '(空字符串)

ResizeFcn

当图形窗口改变大小时,定义一回调程序

有效值:字符串

缺省值:'  '(空字符串)

UIContextMenu

定义与图形窗口相关的菜单

有效值:属性UIContrextmenu的句柄

WindowButtonDownFcn

当在图形窗口中按下鼠标时,定义一回调程序

有效值:字符串

缺省值:'  '(空字符串)

WindowButtonMotionFcn

当将鼠标移进图形窗口中时,定义一回调程序

有效值:字符串

缺省值:'  '(空字符串)

WindowButtonUpFcn

当在图形窗口中松开按钮时,定义一回调程序

有效值:字符串

缺省值:'  '(空字符串)

访问对象的控制

IntegerHandle

指定使用整数或非整数图形句柄

有效值:on、off

缺省值:on(整数句柄)

HandleVisiblity

指定图形窗口句柄是否可见

有效值:on、callback、off

缺省值:on

HitTest

定义图形窗口是否能变成当前对象(参见图形窗口属性CurrentObject)

有效值:on、off

缺省值:on

NextPlot

在图形窗口中定义如何显示另外的图形

有效值:replacechildren、add、replace

缺省值:add

定义鼠标指针

Pointer

选取鼠标记号

有效值:crosshair、arrow、topr、watch、topl、botl、botr、circle、cross、fleur、left、right、top、fullcrosshair、bottom 、ibeam、custom

缺省值:arrow

PointerShapeCData

定义鼠标外形的数据

有效值:16*16阶矩阵

缺省值:将鼠标设置为'custom'且可见

PointerShapeHotSpot

设置鼠标活跃的点

有效值:二维向量[row,column]

缺省值:[1 1]

例7-46

>>scrsz = get(0,'ScreenSize');

>>figure('Position',[1 scrsz(4)/2 scrsz(3)/2 scrsz(4)/2])

执行上面的语句,会在屏幕的左上角生成一没有任何符号的窗口。

命令2  line

功能  生成线(line)对象。命令line在当前坐标轴中生成一个线对象。用户可以指定线的颜色,宽度,类型和标记符号等其他特性。

命令line 有两种形式:

1.自动循环使用颜色和类型。当用户用非正式语法来指定矩阵坐标数据:line(X,Y,Z),Matlab将循环使用由坐标轴ColorOrder和LineStyle指定的颜色顺序和类型顺序。

2.纯粹低级操作。当用户用属性名和属性值调用命令line:

       line(‘XData’,x,’YData’,y,’ZData’,z)

Matlab将在当前用缺省的颜色(参见命令colordef的使用)画出线对象。注意一点的是,用户不能在命令line的低级形式中使用矩阵数据。

用法  line(X,Y) 在当前的坐标轴中画出由向量x和y定义的线条。若x与y为同型的矩阵,则对于x,y的每一列画出一线条。

line(X,Y,Z) 在三维空间中画出由x,y,z定义的线条。

line(X,Y,Z,'PropertyName',PropertyValue,…) 画出由参数x,y,z确定的线条,其中对指定属性PropertyName设置为PropertyValue,其他没有指定属性用缺省值。属性LineStyle和Marker参见命令plot。

line('PropertyName',PropertyValue,…) 对属性用相应的输入参数来设置而画出线条。这是命令line的低级使用形式,此时不接受矩阵参数。除了该情形,其他形式都接受矩阵参数。

h = line(…) 返回每一条线的线对象对应的句柄向量。

表7-11

属性名

说明

有效属性值

定义对象的数据

Xdata

定义线条的x-轴坐标参量

有效值:向量或矩阵

缺省值:[0 1]

Ydata

定义线条的y-轴坐标参量

有效值:向量或矩阵

缺省值:[0 1]

Zdata

定义线条的z-轴坐标参量

有效值:向量或矩阵

缺省值:[0 1]

定义线型与数据点标记符

LineStyle

定义线条的类型

有效值:-、--、:、、-.、  none

缺省值:-(实线)

LineWidth

定义线条的宽度(以磅为单位)

有效值:一标量

缺省值:0.5磅

Marker

定义标记数据点的标记符号

有效值:13种类型之一

缺省值:none

MarkerEdgeColor

定义标记颜色或可填充标记的边界颜色

有效值: auto、none、 ColorSpec

缺省值:auto

MarkerFaceColor

定义封闭形标记的填充颜色

 

MarkerSize

定义标记大小

有效值:标量(磅)

缺省值:6(磅)

控制线条的显示

Clipping

坐标轴矩形区域是否可剪辑

有效值:on、off

缺省值:on

EraseMode

定义显示与擦除线条的方法(对于动画显示)

有效值:normal、none、

    xor、background

缺省值:normal

SelectionHighlight

当线条被选中时,是否突出显示

有效值:on、off

缺省值:on

Visible

定义线条是否可见

有效值:on、off

缺省值:on

Color

定义线条颜色

有效值:ColorSpec

对象访问的控制

HandleVisibility

定义线条句柄对其他函数是否可见

有效值:on、off、callback

缺省值:on

HitTest

定义线条能否成为当前对象

有效值:on、off

缺省值:on

关于线条的一般信息

Children

线条没有子对象

有效值:[](空矩阵)

Parent

线条对象的父对象为坐标轴对象

有效值:坐标轴句柄

Selected

是否显示线条的“选中”状态

有效值:on、off

缺省值:on

Tag

用户定义的标签

有效值:任一字符串

缺省值:’’(空字符串)

Type

图形对象的类型(只读类型)

有效值:'line'

UserData

用户定义的数据

有效值:任一矩阵

缺省值:[](空矩阵)

与回调程序执行有关的属性

BusyAction

定义如何处理回调中断程序

有效值:cancel、queue

缺省值:queue

ButtonDownFcn

当在线条上按下鼠标时,定义一回调程序

有效值:字符串

缺省值:'  '(空字符串)

CreateFcn

当生成线条时,定义一回调程序

有效值:字符串

缺省值:'  '(空字符串)

DeleteFcn

当删除线条时,定义一回调程序

有效值:字符串

缺省值:'  '(空字符串)

Interruptible

定义回调程序是否可中断

有效值:on、off

缺省值:on(可中断)

UIContextMenu

定义与线条相关的菜单

有效值:UIContextMenu的句柄

例7-47

>>t = 0:pi/20:2*pi;

>>hline1 = plot(t,exp(t).*sin(t),'k');

>>hline2 = line(t+.06,exp(t).*sin(t),'LineWidth',4,'Color',[.8 .8 .8]);

>>set(gca,'Children',[hline1 hline2])

生成图形为图7-46。

图7-46  命令line画的函数图

例7-48

图7-47  随机直线图

生成随机直线图:

>>line(rand(4,2),rand(4,2),rand(4,1))

>>line(rand(1,4),rand(1,4),rand(1,4))

>>line(rand(4,1),rand(4,1),rand(4,1))

>>line(rand(2,4),rand(2,4),rand(1,4))

>>line(rand(4,2),rand(4,2),rand(4,1))

生成图形为图7-47。

命令3  patch

功能  生成补片图形对象。该命令为生成补片图形对象的低级图形函数。补片为一个或多个多边形,多边形的顶点为坐标中的点。用户可以指定补片的颜色与光照模式。

用法  patch(X,Y,C) 在当前坐标轴中增加二维带填充模式的补片。参量X,Y确定顶点的位置。若X,Y为矩阵(同型或不同型),系统按列生成多个多边形。若x,y没有定义一封闭的多边形,则命令自动地将多边形封闭。参量x与y可以定义凹的或自身交叉的多边形。可是,一个不可分隔的补片的边界自身交叉,则不能完整填充。在这种情况下,最好是将多边形分解成几个小的、自身没有交叉的多边形。参量c指定每一补片的颜色,它可以为简单的ColorSpec,每面一颜色或每一顶点一颜色。若c为三维列向量,它将被认为是一直接指定的RGB颜色。

      patch(X,Y,Z,C) 生成三维的补片对象。

      patch(FV) 用结构FV生成一补片。结构FV包含这些域名vertices,faces和可选的facevertecdata,这些域名对应于补片的Vertices属性、Faces属性、FaceVertexCData属性。

      patch(…,C,'PropertyName',PropertyValue…) 在二维(X,Y)或三维(X,Y,Z)空间中对补片指定的属性PropertyName设置为PropertyValue。

      patch('PropertyName',PropertyValue…) 对所有指定的多个属性PropertyName设置为相应的值PropertyValue。该命令形式可以使用户免除颜色的指定,因为系统将使用缺省的面颜色和边界颜色,除非用户准确地对属性FaceColor与EdgeColor进行设置。该命令形式也允许用户通过对属性Faces与Vertices的设置来代替x-,y-与z-轴的输入。

      handle = patch(…) 返回命令patch生成的补片对象句柄。

说明  函数patch不象其他的高级的区域生成函数,例如函数fill或area,它没有检测图形窗口与坐标轴的属性NextPlot的设置情形。它只是简单地在当前坐标轴中添加补片对象而已。

有两种指定颜色的补片属性名:

(1)Cdata——当指定x-,y-与z-轴坐标(XData,YData,ZData)时使用;

(2)FaceVertexCData——当指定多边形的顶点与连接矩阵时使用。

以上两个属性接受颜色数据作为索引颜色或者是真颜色(RGB)。其中索引颜色数据 能代表当前色图的直接索引或者代表映射到整个色图的线性数据的比例数值。

命令4  surface

功能  生成面对象。该命令是生成面图形对象的低级函数。面对象为由矩阵元素的A(I,j)所在的行下标I为x-坐标,所在的列下标j为y-坐标,元素值为z-坐标确定的点生成的空间多边形。

用法  surface(Z) 画出由矩阵z确定的曲面,其中z为定义在一几何矩形区域上的单值函数。

      surface(Z,C) 画出颜色由c指定的、面由z指定的空间曲面。

      surface(X,Y,Z) 曲面由参数x,y,z确定,颜色参数c=z,因此颜色能恰当地反映曲面的高度。

      surface(X,Y,Z,C) 曲面由参数x,y,z确定,颜色由参数c确定。

      Surface(x,y,Z) 参数x与y为向量,若[m,n]=size(z),则要求length(x)=n,length(y)=m,面上的点由(x(j),y(i),z(I,j))确定。

      Surface(x,y,Z,C) 曲面确定如上情形,颜色由参数c确定。

      surface(…'PropertyName',PropertyValue,…) 对指定的曲面属性PropertyName指定为PropertyValue,对曲面进行细微控制。

      h = surface(…) 返回生成面对象的句柄。

命令5  image

功能  显示图片对象。该命令通过对矩阵c中每一个元素(每一元素作为引用图形色图下标或直接给出RGB值)的解释而生成一个图片对象。Image命令有两种使用格式:

1.一个调用命令newplot的高级函数,可以确定在何处放置图片与坐标轴的范围为刚好围住图片;使刚生成的图片放置在坐标轴的刻度线与格栅线之上;属性Ydir设置为rervse;属性View为[0 90]。

2.一个增加图片到当前坐标轴的低级命令,而没有调用命令newplot,在低级使用形式中,只能对指定属性进行设置操作。

用户在命令的输入参量中可以输入属性名/属性值,结构数组,细胞数组等。

用法  image(C) 把C作为一图片进行显示。C中的每一个元素指定了一个“图片”矩形中的相应部分的颜色。

      image(x,y,C) 在(x,y)确定的位置上画C的元素。其中x,y都为2维矩阵,分别指定x轴与y轴的范围,其效果与image(C)相同,只不过是进行了恰当的比例缩放。

      image(x,y,C,'PropertyName',PropertyValue,…) 该形式为指定属性名/属性值的高级使用形式,在执行该命令之前,先执行命令newplot。

      image('PropertyName',PropertyValue,…) 该形式为低级使用形式,它只接受属性名/属性值的输入。

图7-48

      handle = image(…) 返回刚生成的图片对象的句柄。用户可以从上面的任何形式的调用后获得图片句柄。

例7-49

>>load clown

>>image(X,'CDataMapping','scaled')

>>colormap(map)

图形结果为图7-48。

命令6  uicontrol

功能  生成用户控制图形对象(用户界面控制)。也通过该命令运行图形用户界面。当对象被选中时,一般会执行相应的操作。系统支持多种控件,每一种都有不同的作用:

?          校验框——当单击检验框时,会执行一操作。该组件对于提供用户多个独立的选择是很有用的。要激活一校验框,只需用鼠标单击该组件即可,且选中的状态在组件上显示出来。

?          可编辑文本框——允许用户输入与修改文本文字的区域。当用户想把文字作为   输入时,可使用该组件。若一可编辑文本框有焦点,则单击文本框的菜单栏不会执行任何操作。因此,在单击菜单条后,语句get(edit_handle,’String’)并没有返回当前编辑框中的内容。因为系统必须执行回调函数来改变属性 string的值,即使屏幕上显示的文字已经改变。

?          框架——该组件为一封闭的、可见的、图形窗口区域。框架能使一用户图形界面中相关的控制组件能容易理解。框架没有相关的回调程序。只有控制组件能在框架中显示。框架不是透明的,因此用户定义的组件先后顺序决定了组件是否被框架遮住或可见。属性Stacking order决定了控制组件的显示顺序:第一个定义的组件最先显示,后面定义的控制组件则覆盖已经存在的组件。若用户要用一框架包围一些组件,则必须第一个定义框架。

?          列表框——显示一些项目的列表(用命令string设置),且允许用户选择一个或多个项目。属性Min与Max控制着选择的模式。属性Value显示可选择的项目与包含着字符串列表中项目的索引;对于选择了多个项目则用向量表示。在任何的能改变属性Value值的、鼠标松开的操作之后,系统MATLAB将马上执行列表框的回调函数。因此,用户有必要增加一“Done”按钮,用于推迟当要多次选择项目时的操作。在执行列表框回调函数Callback属性之前,列表框中项目的选择有单击或双击之分,对应于将图形窗口属性SelectionType设置为normal或open。

?          弹出菜单——当组件被按下时,打开且显示一选择列表(用命令string设置)。当没有打开时,该组件显示当前的选择项。该组件对于用户想给其他用户提供一系列的互斥的选择项,又不想占用太多的区域。

?          普通按钮——当该组件被按下时,将执行一操作。要激活一按钮,只需在按钮上按下鼠标按钮。

?          单选按钮——该组件与校验框相类似,但它包含几个互斥的、而且相关的选项(例如在任意时刻,只能选择一个状态)。要激活某一单选按钮,只需在该组件上按下鼠标即可。被选中的组件同时显示出来。

?          滑块——该组件允许用户通过移动某一范围之内的滑块来输入一指定的数值。用户要移动一滑块,只需在滑块上按下鼠标不放,且在滑块方向上移动;或者是在滑槽内单击鼠标;或者是单击滑块条上的箭头。当松开鼠标后,滑块所在位置将与一数值对应。用户可以设置滑块的最大值、最小值与当前值等。

?          静态文本框——显示文本行。静态文本经常作为其他控制对象标签,以提供其他用户相关信息,或者是显示一滑块的数值。其他用户不能交互地改变静态文本,因此对于静态文本,没有相关的回调函数。

?          触发按钮——当该组件被单击且显示出它们的状态(on或者off)时,控制是否执行回调函数。

用法  handle = uicontrol(parent) 在父对象parent上生成一用户图形控制界面。用户界面控制对象都是图形窗口的子对象,所以当窗口中没有坐标轴时,同样可以放置控制组件于图形窗口中。

      handle = uicontrol(…,'PropertyName',PropertyValue,…) 参量PropertyName为属性名,参量PropertyValue可为结构数组或者为单元数组,同时随意地返回刚生成的对象的句柄。当然用户可以通过命令set与get来设置与询问生成对象的属性值。

附:表7-12列出所有的用于命令uicontrol对象的属性名。每一属性名当作一描述该属性的链接。

表7-12

属性名

属性名含义

属性值

控制控件类型与显示

BackgroundColor

对象的背景颜色

有效值:ColorSpec

缺省值:与系统有关

Cdata

显示于对象之上的真颜色图片

有效值:矩阵

ForegroundColor

文本字体的颜色

有效值:ColorSpec

缺省值:[0 0 0](黑色)

SelectionHighlight

当对象被选中时突出显示

有效值:on、off

缺省值:on

String

用户控制界面的标签,也是列表框与弹出菜单中的项目

有效值:任意有效的字符串

Visible

用户界面控制是否可见

有效值:on、off

缺省值:on

关于控件对象的一般信息

Children

用户界面控制界面没有子对象

 

Enable

用户界面控制是否可用

有效值:on、inactive、off

缺省值:on

Parent

用户界面控制对象的父对象

有效值:图形窗口标量句柄

Selected

对象是否为选中状态

有效值:on、off

缺省值:off

SliderStep

滑块步长尺度

有效值:二维向量

缺省值:[0.001 0.1]

Style

用户界面控制对象的类型

有效值:pushbutton、edit、togglebutton、slider、text、radiobutton、popupmenu 、listbox、frame

缺省值:pushbutton

Tag

由用户指定的对象的标记符

有效值:任意有效字符串

TooltipString

对象的工具提示

有效值:任意有效字符串

Type

图形对象的类型

有效值:字符串(只读)

缺省值:uicontrol

UserData

用户指定的数据

有效值:矩阵

控制控件对象的位置

Position

用户界面控制对象的大小与位置

有效值:位置矩形

缺省值:[20 20 60 20]

Units

解释属性position向量的单位

有效值:pixels、inches、character、normalized、points、centimeters

缺省值:pixels

控制字体与标签

FontAngle

字符的倾斜度

有效值:normal、italic、oblique

缺省值:normal

FontName

字体系列名称

有效值:字符串

缺省值:与系统有关

FontSize

字体大小

有效值:一标量

缺省值:与系统有关

FontUnits

字体大小单位

有效值:pixels、normalized 、inches、centimeters、points

缺省值:points

FontWeight

文本字体的磅值

有效值:light、normal、demi、bold

缺省值:normal

HorizontalAlignment

标签字符串的对齐方式

有效值:left、center、left

缺省值:决定于用户界面控制的对象

String

用户控制界面的标签,也是列表框与弹出菜单中的项目

有效值:字符串

控制回调函数的执行

BusyAction

回调函数中断方式

有效值:cancel、queue

缺省值:queue

ButtonDownFcn

当按钮按下时执行的回调函数

有效值:字符串

Callback

控制操作

有效值:字符串

CreateFcn

在对象生成过程中执行的回调函数

有效值:字符串

DeleteFcn

在对象删除过程中执行的回调函数

有效值:字符串

Interruptible

回调函数中断的模式

有效值:on、off

缺省值:on

UIContextMenu

与界面控制中的对象相关的菜单(如按下鼠标右键)

有效值:句柄

关于当前状态的一般信息

ListboxTop

第一个显示于列表框中的项目的索引

有效值:标量

缺省值:[1]

Max

最大值(与用户界面控制对象有关)

有效值:标量

缺省值:与系统有关

Min

最小值(与用户界面控制对象有关)

有效值:标量

缺省值:与系统有关

Value

用户界面控制对象的当前值

有效值:标量或向量

缺省值:与系统有关

控制组件的访问

HandleVisibility

句柄是否可从命令窗口中与GUIs中访问

有效值:on、callback、off

缺省值:on

HitTest

组件是否可由鼠标单击选中

有效值:on、off

缺省值:on

命令7  uimenu

功能  生成图形窗口的菜单中的层次的菜单与下一级子菜单。即增加新的菜单于已经存在的菜单后面,当一菜单项被选中时,该菜单项与它的下一级菜单也将显示。也可用该命令生成与组件相关的菜单。

用法  handle = uimenu('PropertyName',PropertyValue,…) 在当前图形窗口菜单条上用指定的属性PropertyName与相应的属性值PropertyValue创建一菜单,同时将该菜单的句柄赋给handle。其中两个输入参量可以是结构数组或者是单元数组。用户界面菜单的回调函数属性定义了当用户激活菜单项时,进行的响应操作。

      uimenu('PropertyName',PropertyValue,…) 效果同上,但不返回句柄值。

      handle = uimenu(parent,'PropertyName',PropertyValue,…) 生成一父菜单的子菜单,或者是生成由parent指定的相关菜单中的菜单项目。若parent不是另外的用户界面菜单对象或用户界面相关菜单对象,而是一图形窗口,则系统将生成该图形窗口菜单条上的新的菜单。同时将生成的菜单赋值给句柄handle。

      uimenu(parent,'PropertyName',PropertyValue,…) 效果同上,但不返回菜单的句柄。

附:表7-13列出了所有对uimenu对象有用的属性,分别按功能进行了分类。每一属性名作为该属性描述的索引。

表7-13

属性名

属性名描述

属性值

控制控件类型与显示

Checked

菜单检查记号

有效值:on、off

缺省值:off

ForegroundColor

文本的颜色

有效值:ColorSpec

缺省值:黑色[0 0 0]

Label

菜单标签

有效值:任何字符串

Separator

分隔线模式

有效值:on、off

缺省值:off

SelectionHighlight

对象选中时是否突出显示

有效值:on、off

缺省值:on

Visible

用户界面菜单是否可见

有效值:on、off

缺省值:on

关于对象的一般信息

Acceleratro

键盘等价字符

有效值:任何的字符

Children

子菜单的句柄

有效值:句柄向量

Enable

用户界面菜单是否可用

有效值:on、off

缺省值:on

Parent

用户界面菜单的父对象

有效值:句柄

Tag

用户指定的对象标记符

有效值:任何字符串

Type

图形对象类型

有效值:字符串read-only

缺省值:uimenu

UserData

用户指定数据

有效值:任何矩阵

控制对象的位置

Position

用户界面菜单的相对位置

有效值:标量

缺省值:[1]

控制回调程序的执行

BusyAction

回调程序的中断

有效值:cancel、queue

缺省值:queue

ButtoDownFcn

按钮按下回调程序

有效值:字符串

Callback

控制操作

有效值:字符串

CreateFcn

在对象生成期间执行的回调程序

有效值:字符串

DeleteFcn

在对象删除期间执行的回调程序

有效值:字符串

Interruptible

回调程序中断模式

有效值:on、off

缺省值:on

控制对象的访问

HandleVisibility

是否可从命令行上访问图形用户界面

有效值:on、callback、off

缺省值:on

HitTest

是否可用鼠标选择

有效值:on、off

缺省值:on

7.3.2  轴的产生和控制命令

命令1  axes

功能  创建坐标轴图形对象。该命令是创建坐标轴图形对象的低级函数命令。

用法  axes 在当前图形窗口中用缺省的属性值创建一坐标轴图形对象。

      axes('PropertyName',PropertyValue,…) 用参量'PropertyName'指定的属性名与用参量PropertyValue指定的属性值创建一坐标轴。对于没有指定的属性名,系统则使用缺省的属性值。

      axes(h) 使已经存在的坐标轴h成为当前的坐标轴。同时使坐标轴h为图形窗口中的所有子对象属性(Children property)的第一坐标轴,也使图形窗口的CurrentAxes属性为h。当前坐标轴是图形函数image、line、patch、surface与text等命令输出图形对象的目的地。

      h = axes(…) 返回已经创建的坐标轴对象的句柄。

命令2  cla

功能  清除当前坐标轴。该命令在命令窗口中执行与在回调程序中执行效果是一样的,即它不能区别由callback设置的属性HandleVisibility,也就是说,当它从一回调程序中执行时,命令cla仅仅删除属性HandleVisibility为on的图形对象。

用法  cla 清除当前坐标轴中所有句柄为不隐藏(例如,图形对象属性HandleVisibility设置为on)的图形对象。

      cla reset 无条件地清除当前坐标轴中所有图形对象,且重新设置坐标轴的属性,(除了属性Position和Units)。

命令3  gca

功能  获取当前坐标轴句柄。

用法  h=gca 返回当前图形窗口中的坐标轴句柄。若坐标轴不存在,系统则生成一坐标轴同时返回它的句柄。用户不想得到上面的结果,可以输入get(gcf,’CurrentAxes’)。

当前坐标轴为用户创建坐标轴以下子对象的目的地。有许多图形命令可以在当前坐标轴中画出图形对象,如:plot,text,surf等。改变了当前窗口,相应地改变了当前坐标轴。

7.3.3  图形句柄操作命令

命令1  gco

功能  返回当前对象的句柄。“当前对象”为最后用鼠标单击的对象,除了命令uimenus之外。若鼠标没有单击到一图形对象之下的子对象,则该图形对象为“当前对象”。系统会把当前图形对象的句柄存放于图形的属性CurrentObject之中。当前图形窗口中的当前对象并非总是那些它们的回调函数,而是正在执行的对象。其他函数的回调中断函数可以改变当前对象或者甚至是当前图形窗口。一些回调函数,如生成命令CreateFcn、删除命令DeleteFcn与用户界面菜单命令Callback等就没有改变当前图形窗口或者当前对象。

用法  h = gco 返回当前对象的句柄给h。

      h = gco(figure_handle) 返回指定窗口figure_handle中的当前对象的值。

命令2  get

功能  获取对象属性。

用法  get(h) 返回由句柄h指定的图形对象的所有属性与相应的当前属性值;

      get(h,'PropertyName') 返回由句柄h指定的图形对象的指定属性PropertyName的属性值。

      <m-by-n value cell array> = get(H,<property cell array>) 返回由m个图形对象的n个属性值组成的m*n阶的细胞数组,其中m=length(H),且n为指定的属性细胞数组<property cell of array>中包含的属性名个数。

      a = get(h) 返回一结构,其中该结构的域名为该对象的属性名,结构的域名值为相应属性的当前值。H必须为标量。若用户没有指定输出参量,则系统将信息显示于屏幕之上。

      a = get(0,'Factory') 返回所有能由用户设置的属性的缺省定义值。输出参量a为一结构数组,该结构的域名为对象的属性名,域名值为相应属性的当前值。若用户没有指定输出参量,则系统将信息显示于屏幕之上。

      a = get(0,'FactoryObjectTypePropertyName') 返回指定对象类型的指定的属性的缺省属性值。输入参量FactoryObjectTypePropertyName为一关键字,由字符Factory与对象类型(如:Figure)还有属性名(如:Color)组成:FactoryFigureColor

      a = get(h,'Default') 返回由句柄h指定的对象的所有缺省属性值。输出参量a为一结构,该结构的域名为缺省值对应的属性名。若用户没有指定输出参量,则系统将该结构信息显示于屏幕。

      a = get(h,'DefaultObjectTypePropertyName') 返回对象类型的指定属性的缺省属性值。输入参量DefaultObjectTypePropertyName为一关键字,该字由字符Default与对象类型名(例如:Figure)还有具体的属性名(例如:Color)组成:DefaultFigureColor

例7-50

若想获得定义于屏幕之上的图形对象属性LineWidth的缺省属性值,输入:get(0,'DefaultLineLineWidth')

命令3  set

功能  设置对象的属性。

用法  set(H,'PropertyName',PropertyValue,…) 用属性值'PropertyValue'设置关于用参量H标志的对象(一个或多个)的属性名'PropertyName'(一个或多个)。H可以为一句柄的向量。在这种情形下,命令set可以设置所有对象的属性值。

      set(H,a) 用指定的属性值设置由H标志的对象的属性。其中a为一结构数组,该结构数组的域名为对象的属性名,域名值为相应属性名的属性值。

      set(H,pn,pv…) 对由H指定的所有对象中指定的细胞数组属性名pn设置为相应的细胞数组属性值pv。

      set(H,pn,<m-by-n cell array>) 对于每m个图形对象设置n个属性值,其中m=length(H),n为包含属性名的细胞数组pn中包含的属性名个数。即允许用户对每一对象的指定的属性设置不同的属性值。

      a= set(h) 返回句柄h中允许用户设置的属性名与可能的属性值。输出参量a为一结构数组,其域名为对象的属性名,域名值为相应的属性名对应的属性值。若没有指定输出参量a,则系统自动将信息显示于屏幕,h必须为标量。

      a= set(0,'Factory') 返回那些用户可以设置缺省值的所有对象的属性名,同时显示可能的属性值,输出参量a为一结构数组,其域名为对象的属性名,域名值为相应的属性名对应的属性值,若没有指定输出参量a,则系统自动将信息显示于屏幕。

      a= set(0,'FactoryObjectTypePropertyName')返回指定根对象(0)类型中指定的属性名ObjectTypePropertyName的所有可能的属性值。输入参量是由固定的关键字Factory、对象类型(如axes)与属性名(如position等)组成。

      a= set(h,'Default') 返回由h标记的对象上缺省设置的值,其中h必须是标量。

      a= set(h,'DefaultObjectTypePropertyName') 返回指定对象h的类型中指定的属性名ObjectTypePropertyName的所有可能的属性值。输入参量是由固定的关键字Factory、对象类型(如axes)与属性名(如position等)组成。

命令4  reset

功能  重新设置图形对象的属性为它们的缺省值。

用法  reset(h) 重新设置由句柄h指定的图形对象的属性为系统为它们设置的初始值。若h为一图形figure,该命令不能重新设置属性Position,Units,PaperPosition和PaperUnits;若h为一坐标轴axes,该命令不能重新设置属性Position和Units。

例7-51

reset(gca)   %重新设置当前坐标轴的属性。

reset(gcf)   %重新设置当前图形的属性。

命令5  delete

功能  删除文件或图形对象。作为一可供选择的函数,用户可从当前目录浏览器(Current Directory browser)中删除文件。要打开该浏览器,从MATLAB桌面上的View菜单中选择Current Directory命令。

用法  delete filename 从磁盘上删除指定的文件filename。参量filename可以是绝对路径或与当前路径相关的路径名。其中可以包括通配符(*)。

      delete(h) 删除由句柄h指定的图形对象。该命令无条件地、直接地删除对象,甚至是图形窗口。

      delete('filename') 这是第一种情形的函数形式。当文件名包含于字符串filename中时,使用函数形式。

例:

delete(‘D:\MATLABR12\work\*.m’) % 将删除指定目录上的所有.m文件。

命令6  findobj

功能  定位图形对象且返回它们的句柄。用户可用特定的属性值与沿着指定的层次分支来限定搜索条件。

用法  h = findobj返回根对象与它的所有的子孙对象句柄。

      h = findobj('PropertyName',PropertyValue,…) 返回属性名PropertyName具有属性值PropertyValue的所有图形对象。用户可指定一对或多对PN与PV值,对此,findobj返回满足所有条件的那些对象。

      h = findobj(objhandles,…) 限定搜索的对象为列表于objhandles中的对象与它们子孙对象。

      h = findobj(objhandles,'flat','PropertyName',PropertyValue,…) 限定搜索对象为objhandles中列出的对象,而不包含它们的子孙对象。

7.3.4  图形窗口的控制命令

命令1  subplot

功能  生成与控制多个坐标轴。把当前图形窗口分隔成几个矩形部分,不同的部分是按行方向以数字进行标号的。每一部分有一坐标轴,后面的图形输出于当前的部分中。

用法  subplot(m,n,p) 将一图形窗口分成m*n个小窗口,在第p个小窗口中创建一坐标轴。则新的坐标轴成为当前坐标轴。若p为一向量,则创建一坐标轴,包含所有罗列在p中的小窗口。

      subplot(h) 使句柄h对应的坐标轴称为当前的,用于后面图形的输出显示。

      subplot('Position',[left bottom width height]) 在由4个元素指定的位置上创建一坐标轴。位置元素的单位为归一化单位。

      h = subplot(…) 返回一新坐标的句柄于h。

命令2  hold

功能  保持当前图形窗口中的图形。该命令是决定是否在当前坐标轴中只能增加新的图形对象还是覆盖原有图形对象。测试保持状态命令为ishold。该命令可以设置当前坐标轴与当前图形的属性NextPlot。若一图形窗口中有多个坐标轴,则每个坐标轴有自己的保持状态。

用法  hold on 保留当前图形与当前坐标轴的属性值,后面的图形命令只能在当前存在的坐标轴中增加图形,即设置当前坐标轴属性NextPlot为add。当必要的时候,坐标轴的一些属性在增加新图时还是要进行相应的改变。例如,当新图形的数据范围超出了当前坐标轴的范围,则命令会自动地改变坐标轴的范围,使能显示新图形。

      hold off 在画新图形之前,重新设置坐标轴的属性为缺省值。off是命令hold命令的缺省值。设置当前坐标轴的属性NextPlot为replace。

      hold 在on与off之间转换。即在增加图形与覆盖图形之间切换。当坐标轴不存在时,则生成一坐标轴。同时使当前坐标轴属性NextPlot在add与replace之间切换。

命令3  gcf

功能  获得当前图形窗口的句柄。

用法  h = gcf 返回当前图形窗口的句柄。当前窗口为由命令plot、title与surf等得到的结果。若不存在图形窗口,则系统自动地生成一个,并返回它的句柄。若用户想当图形窗口不存在时,也不创建新的,则输入:get(0,'CurrentFigure')

命令4  clf

功能  清除当前图形窗口。该命令在命令窗口中执行与在回调程序中执行效果是一样的,即它不能区别由callback设置的属性HandleVisibility,也就是说,当它从一回调程序中执行时,命令clf仅仅删除属性HandleVisibility为on的图形对象。

用法  clf 清除所有当前图形窗口与窗口中的所有那些句柄为不隐藏(例如它们的属性HandleVisibility为on)的图形对象。

      clf reset 无条件地清除当前图形窗口中所有的图形对象,且重新设置所有图形窗口属性为缺省值,除了属性Position,Units,PaperPosition,PaperUnits。

命令5  close

功能  删除指定的图形窗口。

用法  close 删除当前的图形窗口。

      close(h) 删除由句柄h指定的图形窗口。若h为一向量或矩阵,则close全部删除其中每一分量指定的图形句柄。

      close name 删除指定名字name的窗口。

      close all 删除所有没有隐藏的图形。

      close all hidden 删除所有具有隐藏的图形。

      status = close(…) 若成功地删除了指定的对象则返回status=1,否则返回0。

命令6  newplot

功能  做好开始画新图形对象的准备。在高级图形m-文件的开始使用该命令,用于确定在哪一个图形窗口与坐标轴中输出图形。调用命令newplot能改变当前窗口与坐标轴。基本上,当要在已经存在的窗口与坐标轴中画图,有三个选项可选:

1.没有改变任何属性与删除任何对象,直接在当前坐标轴中增加新的图形对象;

2.在画图形的对象之前,删除所有存在于当前坐标轴中的,句柄为非隐藏的对象;

3.在画图形的对象之前,无条件删除所有的存在于当前坐标轴中的对象(不管句柄是否为隐藏),同时设置大部分的属性为缺省值;

4.首先,newplot读取当前图形的属性NextPlot的属性值(关于该属性的含义参见figure或axes的属性表),再执行相应的动作;

5.然后,newplot确定在哪一个窗口中画图,它读取当前图形的属性NextPlot的属性值,执行相应的操作。

用法  newplot 画好图形窗口与坐标轴,后面的图形命令就可以在该坐标轴内画图。

      h = newplot 效果如上,且返回当前坐标轴的句柄给h。

  评论这张
 
阅读(168)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018