我使用Matlab指南制作用户界面。在这个界面中,我运行.m文件,绘制各种图形。分析之后,我想在不关闭GUI的情况下关闭图形。如果我使用关闭所有;关闭所有图形,包括GUI本身。但是,如果我使用close; GUI关闭而不关闭图形。我该如何解决这个问题?
假设您的GUI中没有任何其他axes
对象,下面将工作:
%// find all handles of axes (graphs)
axh = findall(groot,'type','axes')
%// get handles of parent figures containing graphs
fxh = get(axh,'parent')
%// close figures containg axes
close(fxh{:})
它将删除包含axes
对象的所有子图。然而,我仍然坚持我的建议:为所有图形窗口分配独特的句柄,并显式地关闭它们。
这个来自MATLAB Central的答案似乎是最有希望的:
fh=findall(0,'Type','Figure')
获取所有打开图形的句柄。您可以使用标签或将您的GUI与其他图形区分开来的东西。然后关闭所有其他的通过传递句柄来关闭。
正如Hoki在评论中建议的那样,你可以这样写:
close(setxor(fh,theMainGuiHandle))