2014-10-20 48 views
0

在我的MATLAB代碼中,我創建了幾個圖形並存儲了它們的手柄。由於某些操作,所有數字都需要關閉。如何打開與其中一個保存的手柄相對應的圖形?顯示對應於某個句柄的圖形(MATLAB)

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

過了一段時間,因爲我有一個matlab的副本,但我很確定close會刪除這個數字。也許你可以放棄將能見度關閉?或者,保存到文件? – RishiG 2014-10-20 20:57:08

回答

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

相關問題