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

17 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)?

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)


Find more on Complex Logic in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!