我发现有三种方法可以做到这一点:
方法一:像这样使用setappdata和getappdata:
setappdata(0,'some_var',value)
some_other_var = getappdata(0,'some_var')
您可以在 fig1 的 m 文件中使用 setappdata() 来存储您想要传递的任何数据,然后在另一个 m 文件中调用 getappdata() 来检索它。这两个函数的参数 0 指定了 MATLAB 根工作区,您的程序可以在任何地方访问它(即它是全局的)。因此,当您关闭数据时,数据仍然可用。您可能想使用rmappdata 删除它们。
方法二:使用guidata:
假设您使用 GUIDE 创建了 GUI,那么您可以访问一个名为 handles 的结构,该结构可以在各处传递并且您可以对其进行编辑,因此您可以在 GUI 回调中执行此操作:
handles.some_var = some_value
guidata(hObject,handles)
然后您可以在其他 m 文件中的其他回调中访问 handles.some_var(因为 handles 会自动为您传递给它):
some_other_var = get(handles.some_var)
方法3:使用UserData:
从你的第一个图中存储你想要的变量:
set(name_of_fig, 'UserData', some_var)
然后从你的另一个那里得到它:
some_other_var = get(name_of_fig, 'UserData')
(免责声明:我对 MATLAB 的实际了解并不是那么好,但它有助于能够找到像 this 和 this 甚至 this from the official docs 这样的好的资源。我在这里写的内容 可能有误,因此您绝对应该查阅文档以获得更多帮助。)