2015-05-21 52 views
1

我正在尋找一種簡單的方法,保存我的GUI的當前狀態,並能夠再次加載這個保存的狀態。我知道這是一個視頻(http://blogs.mathworks.com/videos/2010/12/10/how-to-save-and-restore-state-of-a-gui-in-matlab/),但它不能在我的電腦上運行。Matlab - 簡單的方法來保存整個圖/ GUI

我認爲是這樣的:(我用的GCF,因爲我不知道我的整個GUI中的「mainhandle」)

%Save Data 
currentdata = getappdata(gcf); 
uisave('currentdata',date); 

%Load Data 
[filename,pathname]=uigetfile({'*.mat'},'Select input file'); 
load([pathname,filename]); 

有這樣的問題,即所保存的數據被打開在一個新的數字,而不是我選擇打開它的當前。

我還想知道是否可以設置一個文件夾(它被添加到matlab路徑)作爲用於保存/加載的deault文件夾。

謝謝你的幫助! Klaus

回答

1

由於您的currentdata保留了您的GUI的整個手柄,包括GUI的主要圖形的句柄,所以當您加載它時,會打開一個新圖形。

在提到的視頻中做了什麼是:只保存您需要保留/重新加載在以後的會話中的字段/數據。

因此,要麼將這些特定字段保存在GUI的句柄中並逐個重新加載它們,要麼您可以使用視頻下注釋中提到的exchange functions

+0

謝謝你的回答!有沒有更簡單的方法來配置uisave或uiremember/uirestore以外的東西? – klaus

+0

uiremember /恢復似乎總是恢復最後一個狀態,但我希望能夠保存不同的狀態(一些有趣的情況下),並能夠加載每個之後 – klaus

+0

你讀了這些函數的代碼?您可以將保存狀態的部分更改爲'mem_file',並將代碼封裝在GUI中的按鈕CallbackFcn中,以便決定要保存/加載哪些狀態。他們提供了這些工具,因此您不必重寫它,但如何使用這些工具就是您的工作。 – scmg

相關問題