如何检查轴柄是否已清除

时间:2018-12-13 19:28:57

标签: matlab matlab-figure

我要检查是否已清除某些轴,根据这些轴还要执行其他任务。我使用cla来清除某些轴,而不是delete。例如:

figure

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

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

cla(hs1)

然后,问题是如何确定是否清除hs1

1 个答案:

答案 0 :(得分:6)

默认情况下,cla函数将删除所有带有visible handles的子对象。因此,您可以使用child objects函数通过查看是否有任何allchild来检查是否清除了轴:

isCleared = isempty(allchild(hs1));

请注意以下几点:

  • 默认情况下,cla函数不会清除带有隐藏手柄的对象。需要选项cla(hs1, 'reset')才能清除隐藏的句柄。

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