2011-09-13 55 views
2

我遇到過這樣的問題,並希望你們能夠幫我解決問題。Matlab GUI:將劇情轉移到新窗口

我在我的GUI中有一個陰謀,包含多行與不同linspecs和一組傳說。 我創建了一個上下文菜單,它允許用戶在一個新窗口中打開完全相同的圖(保留所有行設置,標題,圖例等等)(默認圖形,它可以保存/編輯數字)。 但是,我找不到一個簡單的方法來遷移繪圖,除了重新運行相當複雜的繪圖命令(繪製不同的數據等)

所以,我正在尋找解決方案在以下兩個方法:

  1. 有一個簡單的方法來遷移積成新圖窗口?

  2. 或者是否可以直接用當前界面保存繪圖?

對於2,我想澄清一點,我只想保存繪圖,而不是所有的GUI界面。我試過saveas(handle.Plot,...),但它將GUI界面保存爲一個實體。

我希望這一點已經明確,謝謝你的時間。乾杯。

+0

一個相關的問題:[產生subplots,然後將它們組合成一個數字後來在MATLAB](http://stackoverflow.com/questions/4008880/producing-subplots-to-then-combine-them-into-a-數字後來在matlab) – Amro

回答

3

對於這個任務,你可以使用內建的Matlab函數copyobj,它完全做到了這一點(即在你的問題中提到的第一個選項)。

下面這段代碼演示了其用法:

h1=figure; 
a1=plot((1:100),rand(1,100),'r-'); 
hold on 
plot((1:100),rand(1,100),'b+'); 
legend({'plot1';'plot2'}); 
h2=figure; 
copyobj(get(h1,'children'),h2); 

希望工程,以及在你的案件。

UPDATE:據我瞭解這一點,你的第二個解決方案將涉及saveas功能,遺憾的是與數字環境,而不是用斧頭工作(因爲你經歷過)。因此,一種解決方法可能涉及使用上面給出的方法將所需軸複製到一個新數字,然後使用saveas

+0

謝謝你的答案。現在我沒有義務了,所以我明天會試試你的答案。這似乎很合理。 :d – newbie