在我的MATLAB代码中,我创建了几个数字并存储了它们的句柄。由于某些操作,所有数字都需要关闭。如何打开与其中一个已保存的手柄对应的图形?
x=0:0.01:1;
y=x.^2;
h1 = plot(x,y);
...
close all
...
"What next?"
答案 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;
这将创建一堆图,关闭它们,删除所有内容,然后将其中一个加载回内存。加载的数字将包含所有XData
和YData
以及其他属性,就像您从未关闭它一样,因此它仍然可以缩放和编辑。