How to generate an event in matlab every second
2 个评论
回答(2 个)
You can setup up a timer class object to repeat a task at a fixed time rate. The simple way to create a timer object is
t = timer('ExecutionMode', 'fixedRate', 'Period', 1, 'TimerFcn', @(~,~) disp('1s passed'));
If you are using recent versions of MATLAB you can also use dot notation to specify timer properties
t = timer() t. ExecutionMode = 'fixedRate' t.Period = 1; t.TimerFcn = @(~,~) disp('1s passed'); % you can use function handle or an anonymous function.
The TimerFcn is a callback function executed after each period of time. It must accept two or more inputs. First two inputs are used for accessing timer object handle and Event type. For most simple purposes first two inputs can be ignored. If you want to pass an additional input to TimerFcn you can use following notation
str = 'passed'; t.TimerFcn = {@(~,~,x) disp(['1s ' x]), str};
In this case, the timer Callback function will access the variable named str from base workspace. A more advanced example of timer callback function is
t.TimerFcn = {@(tObj,~,x) disp([num2str(tObj.Period) 's ' x]), str};
Here the callback function can also use the timer object handle and access its property using dot notation.
另请参阅
类别
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!