显示与某个手柄对应的图形(MATLAB)



在我的MATLAB代码中,我创建了几个图形并存储它们的句柄。由于一些操作,所有的数字都需要关闭。如何打开与保存的句柄之一对应的图形?

x=0:0.01:1;
y=x.^2;
h1 = plot(x,y);
...
close all
...
"What next?"

这更多的是一种变通方法,而不是一种有效的解决方案,但如果你能负担得起内存/变量的创建,你可以在图形打开时使用getframe保存图形的内容,在图形关闭后再次显示:

clc
clear
x = 1:10;
y = sin(x);
y2 = cos(x);
h1 = plot(x,y);
h1Frame = getframe(gcf);
MyData = h1Frame.cdata;
h2 = plot(x,y2);
close all
imshow(MyData)

尽管有明显的缺点,但希望这会有所帮助:)。当然,你可以对多个图形和句柄进行归纳,尽管我重复一遍,这可能不是最佳的。这是一个有趣的问题!

如果您有磁盘空间,生成数字后,请使用hgsave将其保存为fig文件,然后使用hgload将其重新加载。

n = 1:10;
x = 0:0.01:1;
K = length(n)
for k = 1:K
  h = figure(k)
  y = x.^n(k);
  plot(x,y)
  hgsave(h,sprintf('PowerPlot_n=%d',n(k)));
end
close all
clear all
hgload('PowerPlot_n=4.fig') %for instance
h = gca;

这将制作一堆情节,关闭所有情节,删除所有内容,然后将其中一个重新加载到内存中。加载的地物将具有所有XDataYData以及其他属性,就好像您从未关闭过它一样,因此它仍然是可缩放和可编辑的。

我没有使用过它们,但您可能还想看看savefigopenfig

最新更新