Stateflow | ![]() ![]() |
Which ml Should I Use?
In most cases the notation of the ml
namespace operator is more straightforward. However, using the ml
function call does offer a few advantages:
This example demonstrates the use of a Stateflow for
loop to create four new matrix workspace variables in MATLAB. The default transition initializes the Stateflow counter i
to 0 while the transition segment between the top two junctions increments it by 1. If i
is less than 5, the transition segment back to the top junction is taken and evaluates the ml
function call ml('A%d = rand(%d)',i,i)
for the current value of i. When i is greater than or equal to 5, the transition segment between the bottom two junctions is taken and execution stops.
This results in the following MATLAB commands, which create a workspace scalar (A1) and three matrices (A2, A3, A4):
ml
namespace operator, as demonstrated by the following example:
This example sets the workspace variable A
to a magic 4-by-4 matrix using the ml
namespace operator. Stateflow data B
is then set to the addition of A
and its transpose matrix, A'
, which produces a symmetric matrix. Because the ml
namespace operator cannot evaluate the expression A'
, the ml
function is used instead. However, you can call the MATLAB function transpose
with the ml
namespace operator in the following equivalent expression:
As another example, you cannot use arguments with cell arrays or subscript expressions involving colons with the ml
namespace operator. However, these can be included in an ml
function call.
![]() | ml Expressions | ml Data Type | ![]() |