首页 文章

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

提问于
浏览
0

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

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

2 回答

  • 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)
    

    希望尽管有明显的弊端:)当然,你可以推广多个数字和句柄,虽然我重申这可能不是最优的 . 这是一个有趣的问题!

  • 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 .

相关问题