如何检查轴句柄是否已清除

How to check if an axes handle is cleared or not

我想检查一些轴是否已经被清除,在此基础上执行一些进一步的任务。我使用 cla 来清除一些轴,而不是 delete。例如:

figure

hs1 = subplot(121); plot(rand(100,2), 'x');

hs2 = subplot(122); plot(rand(100,2), 'o');

cla(hs1)

那么,问题就是如何判断hs1是否被清除了。

cla function removes all child objects with visible handles by default. You can therefore check if an axes has been cleared by seeing if it has any child objects using the allchild函数:

isCleared = isempty(allchild(hs1));

要记住的几点注意事项:

  • cla函数默认不会清除隐藏句柄的对象。清除隐藏句柄需要选项 cla(hs1, 'reset')

  • allchild 函数将查找所有子对象,无论它们的句柄是否可见。如果您只想检查具有可见句柄的子对象,您可以使用 isempty(hs1.Children).