我正在使用 Matlab Guide 制作用户界面。在此界面中,我运行绘制各种图形的 .m 文件。经过分析,我想在不关闭 GUI 的情况下关闭图形。如果我使用全部关闭;包括 GUI 本身在内的所有图表都会关闭。但是,如果我使用close; GUI 关闭而不关闭图形。我该如何解决这个问题?
问问题
607 次
2 回答
1
来自MATLAB Central的这个答案似乎是最有希望的:
fh=findall(0,'Type','Figure')
获取所有打开图形的句柄。您可以使用标签或其他东西将您的 gui 与其他图形区分开来。然后通过传递他们的句柄关闭所有其他人。
正如 Hoki 在评论中所建议的那样,您可能可以跟进:
close(setxor(fh,theMainGuiHandle))
于 2016-08-16T11:14:41.133 回答
1
假设您的 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
对象的所有子图形。但是我坚持我的建议:为所有图形窗口分配独特的句柄并明确关闭它们。
于 2016-08-16T11:22:17.060 回答