This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English version of the page.

Note: This page has been translated by MathWorks. Click here to see
To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

Supported Operations for Vectors and Matrices

Stateflow® charts in Simulink® models have an action language property that defines the syntax that you use to compute with vectors and matrices. The action language properties are:

  • MATLAB® as the action language.

  • C as the action language.

For more information, see Differences Between MATLAB and C as Action Language Syntax.

Indexing Notation

In charts that use MATLAB as the action language, refer to elements of a vector or matrix by using one-based indexing delimited by parentheses. Separate indices for different dimensions with commas.

In charts that use C as the action language, refer to elements of a vector or matrix by using zero-based indexing delimited by brackets. Enclose indices for different dimensions in their own pair of brackets.

Example

MATLAB as the Action Language

C as the Action Language
The first element of a vector VV(1)V[0]
The ith element of a vector VV(i)V[i-1]
The element in row 4 and column 5 of a matrix MM(4,5)M[3][4]
The element in row i and column j of a matrix MM(i,j)M[i-1][j-1]

Binary Operations

This table summarizes the interpretation of all binary operations on vector and matrix operands according to their order of precedence (1 = highest, 3 = lowest). Binary operations are left associative so that, in any expression, operators with the same precedence are evaluated from left to right. Except for the matrix multiplication and division operators in charts that use MATLAB as the action language, all binary operators perform element-wise operations.

Operation

Precedence

MATLAB as the Action Language

C as the Action Language

a * b

1

Matrix multiplication.

Element-wise multiplication. For matrix multiplication, use the * operation in a MATLAB function.

a .* b

1

Element-wise multiplication.

Not supported. Use the operation a * b.

a / b

1

Matrix right division.

Element-wise right division. For matrix right division, use the / operation in a MATLAB function.

a ./ b

1

Element-wise right division.

Not supported. Use the operation a / b.

a \ b

1

Matrix left division.

Not supported. Use the \ operation in a MATLAB function.

a .\ b

1

Element-wise left division.

Not supported. Use the .\ operation in a MATLAB function.

a + b

2

Addition.

Addition.

a - b

2

Subtraction.

Subtraction.

a == b

3

Comparison, equal to.

Comparison, equal to.

a ~= b

3

Comparison, not equal to.

Comparison, not equal to.

a != b

3

Not supported. Use the operation a ~= b.

Comparison, not equal to.

a <> b

3

Not supported. Use the operation a ~= b.

Comparison, not equal to.

Unary Operations and Actions

This table summarizes the interpretation of all unary operations and actions on vector and matrix operands. Unary operations:

  • Have higher precedence than the binary operators.

  • Are right associative so that, in any expression, they are evaluated from right to left.

  • Perform element-wise operations.

Example

MATLAB as the Action Language

C as the Action Language

~a

Logical NOT. For bitwise NOT, use the bitcmp function.

  • Bitwise NOT (default). Enable this operation by selecting the Enable C-bit operations chart property.

  • Logical NOT. Enable this operation by clearing the Enable C-bit operations chart property.

See Enable C-Bit Operations.

!a

Not supported. Use the operation ~a.

Logical NOT.

-a

Negative.

Negative.

a++

Not supported.

Increment all elements of the vector or matrix. Equivalent to a = a+1.

a--

Not supported.

Decrement all elements of the vector or matrix. Equivalent to a = a-1.

Assignment Operations

This table summarizes the interpretation of assignment operations on vector and matrix operands.

Operation

MATLAB as the Action Language

C as the Action Language

a = b

Simple assignment.

Simple assignment.

a += b

Not supported. Use the expression a = a+b.

Equivalent to a = a+b.

a -= b

Not supported. Use the expression a = a-b.

Equivalent to a = a-b.

a *= b

Not supported. Use the expression a = a*b.

Equivalent to a = a*b.

a /= b

Not supported. Use the expression a = a/b.

Equivalent to a = a/b.

Assign Values to Individual Elements of a Matrix

You can assign a value to an individual entry of a vector or matrix by using the syntax appropriate to the action language of the chart.

Example

MATLAB as the Action Language

C as the Action Language
Assign the value 10 to the first element of the vector V.V(1) = 10;V[0] = 10;
Assign the value 77 to the element in row 2 and column 9 of the matrix M.M(2,9) = 77;M[1][8] = 77;

Assign Values to All Elements of a Matrix

In charts that use MATLAB as the action language, you can specify all of the elements of a vector or matrix in a single statement. For example, this action assigns each element of the 2-by-3 matrix A to a different value:

A = [1 2 3; 4 5 6];

In charts that use C as the action language, you can use scalar expansion to set all of the elements of a vector or matrix to the same value. For example, this action sets all of the elements of the matrix A to 10:

A = 10;
Charts that use MATLAB as the action language do not support scalar expansion. For more information, see Convert Scalars to Nonscalars by Using Scalar Expansion.

Related Topics