Main Content

*Vectors* and *matrices* combine scalar data
into a single, multidimensional data object. You can modify individual elements or
perform arithmetic on entire vectors and matrices. For more information, see Supported Operations for Vectors and Matrices.

Add a data object to your chart, as described in Add Stateflow Data.

Set the

**Size**property for the data object as the dimensions of the vector or matrix. See Specify Size of Stateflow Data. For example:To specify a 4-by-1 column vector, enter

`4`

.To specify a 1-by-4 row vector, enter

`[1 4]`

.To specify a 3-by-3 matrix, enter

`[3 3]`

.

Set the

**Initial value**property for the data object. See Initial Value.To specify a value of zero for all elements of the vector or matrix, leave the

**Initial value**empty. If you do not specify an initial value, all elements are initialized to 0.To specify the same value for all elements of the vector or matrix, enter a scalar value. All elements are initialized to the scalar value you specify.

To specify a different value for each element of the vector or matrix, enter an array of real values. For example:

To initialize a 4-by-1 column vector, you can enter

`[1; 2; 3; 4]`

.To initialize a 1-by-4 row vector, you can enter

`[1 2 3 4]`

.To initialize a 3-by-3 matrix, you can enter

`[1 2 3; 4 5 6; 7 8 9]`

.

Set the name, scope, base type, and other properties for the data object, as described in Set Data Properties.

You can specify the size and initial value of a vector or matrix by using an expression. Expressions can contain a mix of numeric values, constants, parameters, variables, arithmetic operations, and calls to MATLAB functions. For more information, see Specify Data Properties by Using MATLAB Expressions.

You can define vectors and matrices at these levels of the Stateflow^{®} hierarchy:

Charts

Subcharts

States

Functions

You can use vectors and matrices to define:

Input data

Output data

Local data

Function inputs

Function outputs

You can also use vectors and matrices as arguments for:

State actions

Transition actions

MATLAB

^{®}functionsTruth table functions

Graphical functions

Simulink

^{®}functionsChange detection operators

If you perform element-wise operations on vectors or matrices with unequal dimensions, the chart generates a size mismatch error when you simulate the model. For more information, see Supported Operations for Vectors and Matrices.

`ml`

Base TypeThe `ml`

base type supports only scalar data. If you
define a vector or matrix with the `ml`

base type, the
chart generates an error when you simulate the model. For more information, see
ml Data Type.

If you initialize an element of a vector or matrix by using a complex number, the chart generates an error when you simulate the model. You can set the values of vectors and matrices to complex numbers after initialization. For more information, see Complex Data in Stateflow Charts.

Because time is a scalar quantity, you cannot use a vector or matrix as an argument for a temporal logic operator. For more information, see Control Chart Execution by Using Temporal Logic.