有没有办法将uicontrol回调函数的输出与其自己的“用户数据”相关联?

时间:2014-10-12 17:25:19

标签: matlab callback uicontrol

例如,我的按钮uicontrol调用回调函数'fun1_callback':

fh = figure; uicontrol(fh,'style','pushbutton','userdata',_______,'callback',@fun1_callback);

回调函数位于单独的.m文件中。它返回一个输出变量'out':

function out = fun1_callback(hobj,callbackdata) out = rand(5); end

是否可以直接将'out'返回到按钮的'userdata'属性(下划线表示)?

1 个答案:

答案 0 :(得分:0)

您只需要在回调函数中调用set

function out = fun1_callback(hobj,evt)
   out = rand(5)
   set( hobj , 'UserData' , out )
end

之后,out的结果将显示在按钮的userdata中。

但是如果您打算访问这些用户数据,则需要按钮的句柄来检索此数据。因此,我建议您将按钮定义为:

btnHandle = uicontrol(fh,'style','pushbutton','userdata',[],'callback',@fun1_callback);

然后在定义userdata之后检索它们,您可以使用:

myValues = get(btnHandle,'UserData') ;