Stateflow® charts in Simulink® models have an action language property that defines the syntax for state and transition actions. An icon in the lower-left corner of the chart canvas indicates the action language for the chart.
MATLAB® as the action language.
C as the action language.
MATLAB is the default action language syntax for new Stateflow charts. To create a chart that uses C as the action language, enter:
sfnew -c
This table lists the most significant differences in functionality between the two action languages.
Functionality | MATLAB as the Action Language | C as the Action Language |
---|---|---|
Vector and matrix indexing | One-based indexing delimited by parentheses and commas.
For example, | Zero-based indexing delimited by square brackets. For
example, |
C constructs:
| Auto-correction to MATLAB syntax. For example, | Supported. See Supported Operations for Chart Data. |
Conditional and loop control statements in state actions | Supported. For example, you can use | Not supported. For conditional and loop patterns, use graphical functions instead. See Reuse Logic Patterns by Defining Graphical Functions. |
Format of transition actions | Auto-correction encloses transition actions with braces
| Not required to enclose transition actions with braces
|
Ordering of parallel states | Explicit ordering only. See Execution Order for Parallel States. | Explicit or implicit ordering. See Execution Order for Parallel States. |
Integer data types | Signed and unsigned integers with 64, 32, 16, or 8 bits. Parameters that use signed or unsigned integers with 64 bits are not supported. | Signed and unsigned integers with 64, 32, 16, or 8 bits. 64-bit integers are implemented as fixed-point numbers:
|
Fixed-point constructs:
| Not supported. | Supported. See Override Fixed-Point Promotion in C Charts and Fixed-Point Context-Sensitive Constants. |
Complex data | Use complex number notation | Use the |
Data type propagation | Follows MATLAB typing rules. For example, adding data of type
| Follows C typing rules. For example, adding data of
type |
Explicit type cast operations | Use one of these casting forms:
The | Use one of these casting forms:
Type keywords for the |
Scalar expansion | Not supported. | Supported. See Assign Values to All Elements of a Matrix. |
String data | Not supported. | Supported. See Manage Textual Information by Using Strings. |
Specification of data properties:
| Not supported. | Supported. For more information, see:
|
Scope of data in graphical, truth table, and MATLAB functions | Constant , Parameter ,
Input , Output | Local , Constant ,
Parameter , Input ,
Output ,
Temporary |
Dot notation for specifying states, local data, message, and local events inside MATLAB functions | Supported. See Identify Data by Using Dot Notation. | Not supported. |
Custom code functions and variables | Behavior depends on the Import Custom Code configuration parameter.
See Custom Code and Import custom code. | Custom code functions and variables are supported in states and transitions. |
Row-major array layout in generated code | Not supported. | Supported. See Row-Major Array Layout. |
Multidimensional array layout in generated code | Not supported. | Supported for local data. See Multidimensional Array Layout. |
Structure parameters | Tunable and nontunable parameters are supported. | Only tunable parameters are supported. |
Use of global | Supported. | Not supported. |