Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 其它 > 资料存档
资料存档 资料存档
 
 
主题工具 显示模式
旧 2019-12-10, 16:49   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 如何从MATLAB中的另一个函数文件执行回调函数?

我有两个功能:一个使用按钮创建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} ),并将每个值作为单独的附加参数传递给函数。



更多&回答...
poster 当前离线   回复时引用此帖
 


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛禁用 表情符号
论坛启用 [IMG] 代码
论坛启用 HTML 代码



所有时间均为北京时间。现在的时间是 12:20


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.