我在matlab(.m)上创建了一些函数。我想在界面GUI上调用它们:我的按钮回调函数如何调用函数.m(在同一个工作区中)? 此外,我的函数返回一些变量,所以我想将这些变量保存在我的工作区中,以便从我的界面的其他按钮访问它们。 之后,是否可以将变量的结果放在我的界面上?
提前谢谢你,
祝你好运
答案 0 :(得分:1)
是的,这很简单。
您可以直接在按钮回调中调用.m文件,并像在任何其他脚本中一样获取结果。
让我们考虑一个简单的示例,您可以从回调中调用函数A
。让我们说函数A
输出2个参数,out1
和out2
。
在函数A的.m文件中,函数定义如下(输入参数当然可以是任何东西):
function [ou1,out2] = A(Input arguments)
%// code here
end
然后在GUI的按钮回调中,使用此语法检索函数A
的输出并使用它们:
[B,C] = A(Input arguments); %// Or out1 and out2, the names don't matter here.
更好的是,要与GUI中的其他回调共享这些数据,您可以将变量存储在所谓的guidata
或与GUI相关的数据中。有一个方便的句柄结构,用于存储任何类型的数据,并在回调之间轻松共享。
因此,在您的情况下,您将使用:
[handles.B, handles.C] = A(Input arguments)
因此可以从GUI中的任何回调访问handles.B
和handles.C
。不要忘记使用以下命令更新回调结束时的句柄结构:
guidata(hObject,handles)
其中hObject
是GUI图的句柄。有关详细信息,请查看文档here。