# mtimes, *

Transformation or rotation multiplication

Since R2022b

## Syntax

``transformationC = transformationA*transformationB``
``rotationC = rotationA*rotationB``

## Description

````transformationC = transformationA*transformationB` performs transformation multiplication between transformation `transformationA` and transformation `transformationB` and returns the product, transformation `transformationC`.You can use transformation multiplication to compose a sequence of transformations, so that `transformationC` represents a transformation where `transformationB` is applied first, followed by `transformationA`.```
````rotationC = rotationA*rotationB` performs rotation multiplication between rotation `rotationA` and rotation `rotationB` and returns the product, rotation `rotationC`.You can use rotation multiplication to compose a sequence of rotations, so that `rotationC` represents a rotation where `rotationB` is applied first, followed by `rotationA`.```

## Input Arguments

collapse all

First transformation, specified as a scalar `se2` object, a scalar `se3` object, or as an N-element array of transformation objects, where N is the total number of transformations. If you specify `transformationA` as an array, each element must be of the same type.

Either `transformationA` or `transformationB` must be a scalar transformation object of the same type. For example, if `transformationA` is an array of `se2` objects, `transformationB` must be a scalar `se2` object.

Last transformation, specified as a scalar `se2` object, a scalar `se3` object, or as an N-element array of transformation objects, where N is the total number of transformations. If you specify `transformationB` as an array, each element must be of the same type.

Either `transformationA` or `transformationB` must be a scalar transformation object of the same type. For example, if `transformationA` is an array of `se2` objects, `transformationB` must be a scalar `se2` object.

First rotation, specified as a scalar `so2` object, a scalar `so3` object, or as an N-element array of rotation objects, where N is the total number of rotations. If you specify `rotationA` as an array, each element must be of the same type.

Either `rotationA` or `rotationB` must be a scalar rotation object of the same type. For example, if `rotationA` is an array of `so2` objects, `rotationB` must be a scalar `so2` object.

Last rotation, specified as a scalar `so2` object, a scalar `so3` object, or as an N-element array of rotation objects, where N is the total number of rotations. If you specify `rotationB` as an array, each element must be of the same type.

Either `rotationA` or `rotationB` must be a scalar rotation object of the same type. For example, if `rotationA` is an array of `se2` objects, `rotationB` must be a scalar `se2` object.

## Output Arguments

collapse all

Transformation product, returned as a scalar `se2` object, a scalar `se3` object, or as an N-element array of the same transformation type as `transformationA` and `transformationB`. N is the length of the longer argument between `transformationA` and `transformationB` and each row represents the product between `transformationA` and `transformationB`.

Rotation product, returned as a scalar `so2` object, a scalar `so3` object, or as an N-element array of the same rotation type as `rotationA` and `rotationB`. N is the length of the longer argument between `rotationA` and `rotationB` and each row represents the product between `rotationA` and `rotationB`.

## Version History

Introduced in R2022b