MATLAB: Varying timer’s period inside the TimerFcn

MATLABtimer

Hello all,
My question is: it is possible to change the timer's period inside the TimerFcn?
Thanks

Best Answer

This page mentions an approach to vary the period of timer: https://stackoverflow.com/questions/15576682/matlab-change-repeating-timer-period
Here I show the method mentioned in the second answer. This example sets a random time period between 1 to 5 seconds after each callback of timer.
t = timer('StartDelay', 1, 'TimerFcn', @timerFcn, ...
'StopFcn', @timerStopFcn, 'ExecutionMode', 'singleShot');
start(t);
function timerFcn(obj, ~)
disp(obj.StartDelay)
end
function timerStopFcn(obj, ~)
period = randi([1 5]);
obj.StartDelay = period;
start(obj);
end