MATLAB图形对象句柄:什么意思、特点特征
MATLAB在创建每一个图形对象时,都为该对象分配唯一的一个值,称其为图形对象句柄(Handle)。句柄是图形对象的唯一标识符,不同对象的句柄不可能重复和混淆。
所有能创建图形对象的MATLAB函数都可给出所创建图形对象的句柄。计算机屏幕作为根对象由系统自动建立,其句柄值为0,而图形窗口对象句柄值为一正整数,并显示在该窗口的标题栏;其他图形对象的句柄为双精度浮点数。MATLAB提供了若干个函数用于获取已有图形对象的句柄,如figure、line、text、surface、axes( xlabel、ylabel、zlabel、title)。
命令Hf_fig=figure用来创建一个新的图形,并把创建后的图形句柄值返回给变量Hf_fig。高级图形创建命令(plot、mesh、surf等)在创建图形时,都会返回一个列向量用于保存所创建的每个内核对象的句柄值。
例如,通过命令h0=plot(…)创建图形时,将会返回plot函数创建的所有曲线的句柄值;而命令Hs=surf(…)则返回一个表面对象的句柄值。高级绘图命令在创建图形时,还会返回所创建对象的属性值,如通过命令h0_wfall=waterfall(peaks(10))创建函数时,系统将返回包含10个线列的句柄数值。
图形对象的句柄由系统自动分配,每次分配的值不一定相同。在获取对象的句柄后,可以通过句柄来设置或获取对象的属性。
例题 绘制曲线并查看有关对象的句柄。
在命令窗口输入如下内容:
>> x=0:0.01:2*pi;
y=sin(x);
h0=plot(x,y,'b:') %曲线对象的句柄
h0 =
174.0016
>> h1=gcf %图形窗口句柄
h1 =
1
>> h2=gca %坐标轴句柄
h2 =
173.0011
注意:图形对象的句柄由系统自动分配,每次分配的值不一定相同(多次运行例14.1的程序以便比较)。在获取对象的句柄后,可以通过句柄来设置或获取对象的属性。
图形句柄的特点是句柄图形中的所有图形操作都是针对图形对象而言的,利用底层绘图函数,通过对对象属性的设置与操作实现绘图,并且能够随意改变MATLAB生成图形的方式;句柄图形充分体现了面向对象的程序设计,允许设置图形的许多特性,但是这些特性不能通过使用高级绘图函数来实现。在高层绘图中,对图形对象的描述一般是默认的,或者是由高级绘图函数自动设置的,因此对用户来说几乎是不透明的。