Matlab - 关闭图形窗口

5
我正在Matlab编辑器中编写一些代码,其中有大约30个图形。因此,当我发布它时,会打开30个图形窗口,这很烦人。我该如何防止它打开这些窗口,但保留在发布的窗口中的图形?
我已经尝试使用close(figure),但是图形不会显示在发布的窗口中。
提前感谢。

2
'figure' 创建一个图形。假设你的意思是 'gcf'。 - bdecaf
6个回答

17
当你完成图形操作后,最简单的事情就是 close all。我不确定是否可以将其作为脚本的一部分,或者是否需要在发布后手动运行它。

4

至少plot命令有一个选项可以控制图形的可见性。因此,您可以编写类似以下内容的代码:

h = plot(... , 'Visible', 'off');

我希望这些也适用于其他图形对象,我知道与anova相关的图形对象也是如此。

编辑:上述代码隐藏了绘图,但没有隐藏图形本身。要在创建后立即隐藏图形,请执行以下操作:

set(gcf, 'Visible', 'off')

2
在Matlab中,close函数可以实现你想要的功能。请阅读文档以了解更多细节。
要同时关闭所有图形,请使用:
close all

关闭名为“fig5”的特定图形(例如),您可以使用以下命令:
fig5 = scatter(x, y);
close(fig5)

如果您只使用“close”,则只会关闭最近的图形。

0

也许你想要 hold on,它会将所有的图形绘制在同一个窗口中?


0

为了概述解决方案,

第一步是使用处理程序绘图。使用figa=figure;其中figa现在是图形的处理程序。如果您使用多个图形,例如30个,那么figa=figure;figb=figure.......figad=figure; 第二步:使用图形绘制任何您想要绘制的内容; 必须通过撤销图形来完成,例如 figure(figa);hold on;plot(x1,y1) figure(figb);hold on;plot(x2,y2)....以此类推,共30个绘图 第三步是保存所有图形 saveas(figa,'1.fig');saveas(figb,'2.fig');.......以此类推,共30个绘图; 第四步是关闭监视器上的图形 close all; 第五步是重新打开这些图形 openfig('1.fig');openfig('2.fig');.............以此类推,共30个图形

一个建议:使用Excel创建这个长列表的图形名称,并更好地使用单独的.m文件来避免使您的Matlab主代码变得臃肿。


0
您可以使用subplot(m,n,p)在同一图形窗口中绘制多个图形。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接