我是 matlab 的新手。在使用 Matlab GUI 工作时,我遇到了如下问题。
。我想要 2 个图形文件,一个图形文件调用另一个。我知道只要从第一个图文件中调用第二个图文件的名称,我们就可以调用第二个图。但是,我也希望将一些参数从一个图文件发送到另一个图文件。在这里我需要发送参数并获取这些参数以便进行进一步处理。我还没有找到解决这个问题的方法。如果有人能帮助我解决这个问题,我会很高兴。
提前谢谢你
最佳答案
我发现了三种方法:
方法一:使用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)
方法三:使用UserData
:
从你的第一个图中存储你想要的变量:
set(name_of_fig, 'UserData', some_var)
然后从你的另一个获取它:
some_other_var = get(name_of_fig, 'UserData')
(免责声明:我对 MATLAB 的实际了解并不是那么多,但它有助于找到像 this 和 this ,甚至 this from the official docs 这样的好资源。我在这里写的内容 可能是错误的,因此您一定要查阅文档以获得更多帮助。)
关于user-interface - 如何将参数传递给 Matlab GUI 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5346635/