MATLAB Answers

What is the best way to do some calculation within a state in stateflow?

8 views (last 30 days)
Dear all, I'm bit confused of selecting a method to do some calculating program in a 'State' of the Stateflow. I do have to calculate some values checking some external measurements within a 'State'. I used to write some codes of calculation in the state block like Matlab script, but I then moved this code to Matlab Function block, since the state machine just better to show the state changes visually. Still, I am looking for the best way of doing such thing in sateflow while minimizing the execution time. Can anyone suggest me a better way to do such things (writing matlab codes in stateflow states)?

  0 Comments

Sign in to comment.

Accepted Answer

Zhao Wang
Zhao Wang on 28 Sep 2016
I understand that you want to find a better way to write MATLAB code in Stateflow states. I am not sure in what sense you mean better. It might be shorter execution time, easier maintenance, or something else.
I assume you want to make the Stateflow chart easier to change than directly editing MATLAB code in a 'State'. In order to achieve this, you can include MATLAB functions in a Stateflow chart. Refer to the following link for more details about using MATLAB functions in a Stateflow chart:
If you have any specific question, you can contact MathWorks Technical Support for further assistance.

  1 Comment

Tharindu Weerakoon
Tharindu Weerakoon on 30 Sep 2016
Thanks Zhao. Right now I am using the same technique.
BTW, I want to access the variables used in the MATLAB function in Stateflow chart, which should be defined as a global variable. Also the input parameters should be defined globally and they will be updated every time. In the state chart, I will execute the matlab function and it will calculate many parameters/variables and I will be able to get them without defining input and output when I call the function ([output] = Function_Name(inputs)) as explained in this example.
I have post this question in detail, and can you suggest a way to do this?

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!