保存 Matlab 图形而不绘制它,然后以可见状态打开它
Posted
技术标签:
【中文标题】保存 Matlab 图形而不绘制它,然后以可见状态打开它【英文标题】:Save Matlab figure without plotting it and afterwards open it in VISIBLE state 【发布时间】:2015-11-26 16:12:13 【问题描述】:我在这里也有同样的问题: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');
【问题讨论】:
除非您想将二进制文件写入 fig 文件,否则我不确定如何保存某些图形句柄的状态而无需在加载时恢复该状态。唯一可能不同的是手柄本身和图形的位置......不是为了保存时间而设置图形可见吗?还是将其从屏幕上移开? @CST-Linkopenfig
具有在加载时设置 'Visible'
属性的特定选项。更多属性可以通过定义'ResizeFcn'
来更改,因为我发现阅读了一些 MATLAB 中心线程!下面的答案中的详细信息。
【参考方案1】:
对我来说最好的解决方案是(感谢链接,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
图形不会弹出,我只能通过双击打开它们。
【讨论】:
【参考方案2】:documentation 似乎对这个问题有所了解:
创建一个曲面图并使图形不可见。然后,保存 图作为 MATLAB 图文件。关闭隐形人影。
surf(peaks)
set(gcf,'Visible','off')
savefig('MySavedPlot.fig')
close(gcf)
打开保存的图并使其在屏幕上可见。
openfig('MySavedPlot.fig','visible')
...但是,很遗憾,当您使用双击界面时,它可能无法正常工作。该问题也已在here 中讨论过,并且需要更改openfig
的默认行为。通过编辑内置函数是可能的,但是有点脏。
Jesse Hopkins 在 cmets 中提出了另一种解决方案:
在图窗上设置 ResizeFcn 以重新启用可见性。根据 Matlab 文档,实际上,在创建图形时会调用 ResizeFcn: set(h,'ResizeFcn','set(gcf,''visible'',''on'')');
好消息是,这种解决方法应该适用于设置加载时 any 属性,您可能希望在正在加载的图形句柄上设置。
【讨论】:
OP想要双击;他已经有一行代码可以再次打开图了。 @Adriaan 是的,刚刚注意到了。添加了指向讨论该问题的资源的链接。以上是关于保存 Matlab 图形而不绘制它,然后以可见状态打开它的主要内容,如果未能解决你的问题,请参考以下文章