我有两个功能:一个使用按钮创建UI,另一个我想从中执行与按下按钮相同的功能。
当我使用get(gcf,'children')深入研究该图时get(gcf,'children')我发现了带有以下Callback属性的按钮:
ans = [function_handle] [ 1] [ 1] [1x6 double] 现在,据我了解,使用第一个数组元素,我应该能够执行与从UI按下按钮时执行的功能相同的功能,但是我该怎么做呢?我尝试了一切,但似乎没有任何效果。
回答:
从您获得的按钮回调的结果来看,似乎该回调已通过以下方式创建(例如):
hButton = uicontrol(...,'Callback',{@button_callback,1,1,[1:6]}); 回调函数button_callback的定义如下:
function button_callback(hObject,eventdata,a,b,c) ... end 请注意,回调函数
的输入参数列表中还有
两个额外的参数 : hObject (调用回调的对象的句柄)和eventdata (事件数据的结构)。
如果你想调用与应传递给它的3点额外的参数(功能手柄1 , 1 ,和1×6阵列),您还需要传递参数的hObject和eventdata投入。这是调用函数的外观(使用变量ans ):
ans{1}(hButton,[],ans{2:end}); 首先,您需要从单元格数组( ans{1} )中获取函数句柄,然后
像其他任何函数一样,使用括号对其进行调用 。对于hObject您可以将句柄传递给uicontrol对象(如果不需要则为空值),而对于eventdata您可以仅传递一个空值。然后,从单元格数组中获取附加值作为
逗号分隔的列表 ( ans{2:end} ),并将每个值作为单独的附加参数传递给函数。
更多&回答...