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

时间:2014-10-20 20:47:09

标签: matlab plot matlab-figure handle

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

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

2 个答案:

答案 0 :(得分:0)

这更像是一种解决方法,而不是一种有效的解决方案,但是如果你能负担内存/变量的创建,你可以使用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)

希望尽管存在明显的缺点,但仍有帮助:)。当然,你可以推广多个数字和句柄,虽然我重申这可能不是最优的。这是一个有趣的问题!

答案 1 :(得分:0)

如果您有磁盘空间,请在生成数据后,使用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