You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Matlab中获取定时器回调函数的输出

Matlab定时器回调获取函数输出的方法

Matlab的定时器回调默认不会直接返回函数输出,你可以通过以下几种常用方式获取func的输出:

1. 使用全局变量

  • 先声明全局变量用于存储输出结果:
    global OUT1 OUT2;
    
  • 修改定时器回调,将func的输出赋值给全局变量:
    t = timer;
    t.TimerFcn = @(~,~) [OUT1, OUT2] = func(in1,in2);
    
  • 后续需要使用结果时,直接调用全局变量OUT1和OUT2即可。

2. 利用定时器的UserData属性

  • 定时器对象自带UserData属性,可以用来存储任意数据,修改回调逻辑如下:
    t = timer;
    t.TimerFcn = @(~, evt) begin
        [out1, out2] = func(in1,in2);
        evt.Source.UserData = {out1, out2};
    end;
    
  • 定时器触发后,通过以下方式提取结果:
    [result1, result2] = deal(t.UserData{:});
    

3. 使用嵌套函数(适合在主函数内调用)

  • 如果你的定时器是在某个主函数中定义的,可以通过嵌套函数共享变量,无需全局变量:
    function main()
        % 初始化存储结果的变量
        res1 = [];
        res2 = [];
        
        t = timer;
        t.TimerFcn = @timerCallback;
        % 启动定时器(示例)
        start(t);
    
        % 嵌套回调函数
        function timerCallback(~,~)
            [res1, res2] = func(in1,in2);
        end
    end
    
  • 主函数内的res1和res2会被回调函数更新,直接使用即可。

内容的提问来源于stack exchange,提问作者Argyll

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 21:35:16