句柄对象的计算结果不符合逻辑真正的
或假
.必须使用测试感兴趣状态并返回逻辑值的函数。
使用isgraphics
确定一个变量是否包含有效的图形对象句柄。例如,假设hobj
是工作区中的一个变量。在对该变量进行操作之前,请测试其有效性:
如果isgraphics (hobj)...结束
你还可以确定对象的类型:
如果isgraphics (hobj“图”)...hobj是一个数字手柄结束
不能在逻辑语句中直接使用空对象。使用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