MATLAB中无多线程机制,有时候需要实现多任务处理,可以用定时器实现。
MATLAB Timer的详细用法见MATLAB help。
本文所用参数及函数解释:
start(timer_id);%启动定时器
stop(timer_id);%关闭定时器
delete(timer_id); %删除定时器
定时器的四种执行模式:
回调函数代码:
%------------------------------------------------------------------------
% File name: Timer_test
% Last modified Date: 2021年6月2日10点45分
% Author: Jasmine
% Descriptions: 函数Timer_test(),测试定时器时,计时时间到达时回调函数
%------------------------------------------------------------------------
function Timer_test(hObject,eventdata,x)
disp("回调函数调用!");
disp("x的值为:");
disp(x);
end
定时器测试代码:
%------------------------------------------------------------------------
% File name: Test
% Last modified Date: 2021年6月2日11点02分
% Author: Jasmine
% Descriptions: MATLAB定时器的简单使用
%------------------------------------------------------------------------
%********************Clear WorkSpace**********************%
clc;
clear;
%******************Clear WorkSpace End********************%
x = 100;
%**************************定时器启动************************%
%创建定时器:回调函数为Timer_test,传递参数为x,执行模式选择混合模式,延迟时间设置为1s
timer_id = timer ('TimerFcn',{@Timer_test,x},'ExecutionMode','fixedRate','StartDelay',1);
start(timer_id);
%*************************定时器启动结束**********************%
%延时2s
pause(2);
%停止定时器
stop(timer_id);
%删除定时器
delete(timer_id);
运行结果:
回调函数调用!
x的值为:
100
回调函数调用!
x的值为:
100
在程序中,当执行某代码段时不希望因为定时器中断对代码段产生干扰,此时可以在执行代码段之前关闭定时器,在该代码段执行完成之后再启动定时器。