主要内容

逻辑表达式中的句柄

句柄对象的计算结果不符合逻辑真正的.必须使用测试感兴趣状态并返回逻辑值的函数。

如果句柄有效

使用isgraphics确定一个变量是否包含有效的图形对象句柄。例如,假设hobj是工作区中的一个变量。在对该变量进行操作之前,请测试其有效性:

如果isgraphics (hobj)...结束

你还可以确定对象的类型:

如果isgraphics (hobj“图”...hobj是一个数字手柄结束

如果Result为空

不能在逻辑语句中直接使用空对象。使用isempty返回可在逻辑语句中使用的逻辑值。

一些属性包含其他对象的句柄。在另一个对象不存在的情况下,该属性包含一个空对象:

关闭所有hRoot = groot;hRoot。CurrentFigure
ans = 0x0空的GraphicsPlaceholder数组。

例如,通过查询根来确定当前是否有一个数字CurrentFigure属性,使用isempty功能:

hRoot = groot;如果~ isempty (hRoot.CurrentFigure)...有一个目前的数字结束

代码遇到空对象的另一种情况是在搜索句柄时。例如,假设您设置了一个数字标签属性设置为字符向量“myFigure”和你用findobj为了理解这个数字:

如果isempty (findobj (“标签”“myFigure”))...那个数字没有找到结束

findobj如果没有匹配,则返回一个空对象。

如果句柄相等

句柄有两种相等的状态:

  • 任何两个句柄都引用同一个对象(测试用)==).

  • 任何两个句柄引用的对象都是相同的类,并且所有属性都有相同的值(测试用)isequal).

假设你想确定h是值为的特定图形的句柄吗myFigure为其标签属性:

如果h = = findobj (“标签”“myFigure”...% h是正确的数字结束

如果您想确定不同的对象是否处于相同的状态,请使用isequal

hLine1 =线;hLine2 =线;isequal (hLine1 hLine2)
ans = 1