保存Matlab图而不绘制它,然后在VISIBLE状态下打开它

时间:2015-11-26 16:12:13

标签: matlab plot visible figure

我在这里问了同样的问题:Save Matlab figure without plotting it?

但是解决方案存在的问题是,我无法通过双击打开已保存的可见状态数字。看起来savefig命令保存了可见状态。与saveas相同。

h=figure;
set(h,'Visible','off');
savefig('TestExample.fig');

b=openfig('TestExample.fig');

使用此命令我可以看到该图,但我只想双击并查看它:

set(b,'Visible','on');

2 个答案:

答案 0 :(得分:2)

documentation似乎对此问题有所了解:

  

创建曲面图并使图形不可见。然后,保存   图为MATLAB图形文件。关闭看不见的人物。

surf(peaks)
set(gcf,'Visible','off')
savefig('MySavedPlot.fig')
close(gcf)
  

打开保存的图形并使其在屏幕上可见。

openfig('MySavedPlot.fig','visible')

...但是,遗憾的是,当您使用双击界面时,它可能无法正常工作。该问题也在here进行了讨论,并且需要更改openfig的默认行为。通过编辑内置函数可以 ,但有点脏。

Jesse Hopkins在评论中提出了另一种解决方案:

  

将图上的ResizeFcn设置为可渲染的可见性。根据Matlab文档,在实践中,在创建图形时调用ResizeFcn:   集(H, 'ResizeFcn', '设置(GCF,' '可见' ' '' 上 '')');

不错的是,这个解决方法可以用于设置您可能想要在正在加载的图形句柄上设置的任何属性。

答案 1 :(得分:2)

对我来说,最好的解决方案是(感谢链接,How to edit property of figure saved in .fig file without displaying it):

figure('Visible','off')
set(gcf,'Visible','off','CreateFcn','set(gcf,''Visible'',''on'')')
savefig('Test.fig')
close

数字不会弹出,我只能通过双击打开它们。