MATLAB: How to run a for loop every one second

In M Script how to execute a for loop every one second?

Best Answer

Try this,
function a = test
a = timer('ExecutionMode','fixedRate','Period',1,'TimerFcn',@myfun);
start(a);
end
function myfun(obj,evt)
for i=1:3
disp(datestr(now));
end
disp('===============');
end
and call it with
my_timer = test();
When you like to stop the timer call
stop(my_timer)
Or in the case you want to wait until the timer is done and you know how often the for loop should be triggered do this:
function a = test
a = timer('ExecutionMode','fixedRate','Period',1,'TimerFcn',@myfun,'TasksToExecute',10);
start(a);
wait(a);
disp('timer done')
end
function myfun(obj,evt)
for i=1:3
disp(datestr(now));
end
disp('===============');
end
Make sure the tme myfun needs to run is lower than 1 second.