2015-09-29 30 views
2

我存儲在圖中的結構:MATLAB顯示存儲在一個結構的圖形

A.my_fig = gcf; 

我怎麼「重新」或「顯示」這個數字?我試過openfig('A.my_fig')但它沒有重新打開這個數字。

編輯:

爲了明確這一點,我有一個函數:

function my_fig = gen_fig(x) 
my_fig = figure 
h = plot(x) 
close(my_fig) 
end 

調用該函數後,我想是能夠顯示數字。我不希望數字作爲文件存儲,我希望它被存儲在一個變量中。這可能嗎?

+0

該函數應該已經繪製 –

回答

4

通過關閉一個數字你是刪除(無效)由gcf返回的數字句柄。對象(手柄)gcf因此無效並且無法操作。

openfig用於打開已存儲在.fig文件中的數字,例如hgsave。而不是存儲由gcf返回的圖柄,您應該將圖保存爲.fig文件,然後再用openfig再次打開它。

例子:

h = figure; 
y = randi(10, [4 3]); 
bar(y); 
hgsave(h, 'test'); % Saves the figure given by h as test.fig 
close(h); % Closes the figure window and invalidates the h object 

現在我們可以openfig('test')打開的身影。


爲了澄清,沒有辦法來存儲MATLAB數字在一個變量,關閉圖形,然後從變量重新打開它。最可能的解決方案是將該圖保存到.fig文件,關閉它,重新打開並刪除它。

+0

感謝您的解釋,我明白。但是,這不是我正在尋找的......我更新了我的帖子,請看一看。 – mat

+0

@mat當你從函數返回時,數字仍然會打開,因爲你永遠不會關閉它。你可以把它帶到'my_fig = gen_fig(x);圖(my_fig);'。那是你要的嗎? – IKavanagh

+1

@mat無法在變量中存儲圖形,關閉它並從變量重新打開它。你可以得到最接近的是保存它,關閉它,打開它然後刪除它。但是,我很難理解編輯中的問題。 – IKavanagh

2

這不是圖形處理的工作方式。

圖柄是一個程序化的「項目」,它將代碼鏈接到打開的圖形。

這意味着如果數字關閉,手柄消失。你可以很容易地看到,通過

surf(peaks); 
A=gcf; 
close(gcf); 
A 

給出:

A = 

    handle to deleted Figure 

相反,你可以做的是保存數字在.fig格式。這將允許您稍後閱讀並繪製它們,使用openfig

相關問題