Matlab - 保存整个 figure/GUI 的简单方法

Matlab - Easy way to save entire figure/GUI

我正在寻找一种简单的方法来保存我的 GUI 的当前状态并能够再次加载这个保存的状态。我知道有一个视频 (http://blogs.mathworks.com/videos/2010/12/10/how-to-save-and-restore-state-of-a-gui-in-matlab/),但不知何故它在我的电脑上不起作用。

我想到了这样的事情:(我使用 gcf 是因为我不知道整个 GUI 的 "mainhandle")

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

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

这种方式的问题是,保存的数据是在新图形中打开的,而不是我选择打开它的当前图形。

我也想知道是否可以将一个文件夹(添加到 matlab 路径)设置为 saving/loading 的默认文件夹。

感谢您的帮助!克劳斯

由于您的 currentdata 保留了 GUI 的整个句柄,包括 GUI 主图形的句柄,因此当您加载它时,将打开一个新图形。

在提到的视频中所做的是:只需在以后的会话中保存您需要 remained/reloaded 的 fields/data。

因此,要么将这些特定字段保存在 GUI 的句柄中,然后一一重新加载,要么可以使用视频下方评论中提到的 exchange functions