一种简单的方法是使用 setappdata 和 getappdata 来存储您的变量/输入/任何内容,以便您可以从任何地方访问它。
假设您在脚本中删除了一些您想在 GUI 中检索的变量:
A = rand(100,100);
然后使用 setappdata 如下:
setappdata(0,'VariableName',A);
将数据存储在根目录(0作为第一个输入),这意味着在GUI中使用getappdata这样的:
A_in_GUI = getappdata(0,'VariableName');
将允许您从 GUI 或任何其他脚本中检索值,只要您当然使用正确的变量名称。请注意,您可以使用一些图形/GUI 的句柄来保存数据,就像这样;
setappdata(handles.Something,'VariableName','A);
但是,例如,如果您关闭图窗,您可能无法检索您的变量。
正如 Tyler 所指出的,在 GUI 内的不同回调之间共享数据的一个好方法是使用它的句柄结构。更多信息here。
最后说明:
如果您不想花时间在脚本和 GUI 之间共享许多变量,您可以将所有变量存储在一个大型结构中,并仅在此结构上使用 setappdata/getappdata,这将使您的所有变量保持更新.
例如,您可以在脚本中编写如下内容:
Variables_Structure.MyFavoriteNumber = pi;
Variables_Structure.MyFavoriteSport = 'ice hockey';
setappdata(0,'MyVariables',Variables_Structure);
然后在要使用变量的 GUI 中获取 appdata:
Variables_in_GUI = getappdata(0,'MyVariables');