How to generate an event in matlab every second

15 vues (au cours des 30 derniers jours)
Angela Muñoz
Angela Muñoz le 21 Avr 2018
Commenté : Angela Muñoz le 21 Avr 2018
Hi, I want to generate an event in Matlab every second and execute the function depending on it, how can I do it? Thank you very much!
  2 commentaires
Walter Roberson
Walter Roberson le 21 Avr 2018
Do you want the event to be generated every real-time second, or do you want it to be generated every simulated second?
What do you want to have happen to event generation when you pause the program for debugging (as you will surely need to do) ?
Angela Muñoz
Angela Muñoz le 21 Avr 2018
I want it to be generated every simulated second and depending on the input do an action or another

Connectez-vous pour commenter.

Réponses (2)

Stephen23
Stephen23 le 21 Avr 2018
Modifié(e) : Stephen23 le 21 Avr 2018
  1 commentaire
Angela Muñoz
Angela Muñoz le 21 Avr 2018
Thank you very much for the info!

Connectez-vous pour commenter.


Ameer Hamza
Ameer Hamza le 21 Avr 2018
Modifié(e) : Ameer Hamza le 21 Avr 2018

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.

  1 commentaire
Angela Muñoz
Angela Muñoz le 21 Avr 2018
Thank you very much I will surely try out!

Connectez-vous pour commenter.

Catégories

En savoir plus sur Java Package Integration dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by