MATLAB:GUI按钮调用函数.m

时间:2015-03-15 16:52:55

标签: matlab user-interface

我在matlab(.m)上创建了一些函数。我想在界面GUI上调用它们:我的按钮回调函数如何调用函数.m(在同一个工作区中)? 此外,我的函数返回一些变量,所以我想将这些变量保存在我的工作区中,以便从我的界面的其他按钮访问它们。 之后,是否可以将变量的结果放在我的界面上?

提前谢谢你,

祝你好运

1 个答案:

答案 0 :(得分:1)

是的,这很简单。

您可以直接在按钮回调中调用.m文件,并像在任何其他脚本中一样获取结果。

让我们考虑一个简单的示例,您可以从回调中调用函数A。让我们说函数A输出2个参数,out1out2

在函数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.Bhandles.C。不要忘记使用以下命令更新回调结束时的句柄结构:

guidata(hObject,handles)

其中hObject是GUI图的句柄。有关详细信息,请查看文档here