我想检查一些轴是否已经被清除,基于这些轴将执行一些进一步的任务。我使用 cla
清除一些轴,而不是 delete
。例如:
figure
hs1 = subplot(121); plot(rand(100,2), 'x');
hs2 = subplot(122); plot(rand(100,2), 'o');
cla(hs1)
那么,问题就是如何判断hs1
是否被清除。
最佳答案
cla
函数删除所有带有 visible handles 的子对象默认情况下。因此,您可以通过查看轴是否有 child objects 来检查轴是否已被清除。使用 allchild
功能:
isCleared = isempty(allchild(hs1));
需要记住的几点注意事项:
默认情况下,
cla
函数不会清除具有隐藏 句柄的对象。清除隐藏句柄需要选项cla(hs1, 'reset')
。allchild
函数将查找所有子对象,无论它们的句柄是否可见。如果您只想检查具有可见句柄的子对象,您可以使用isempty(hs1.Children)
。
关于matlab - 如何检查轴句柄是否已清除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53768828/