# rotm2eul

Convert rotation matrix to Euler angles

## Syntax

``eul = rotm2eul(rotm)``
``eul = rotm2eul(rotm,sequence)``

## Description

example

````eul = rotm2eul(rotm)` converts a rotation matrix, `rotm`, to the corresponding Euler angles, `eul`. The input rotation matrix must be in the premultiply form for rotations. The default order for Euler angle rotations is `"ZYX"`. For more details on Euler angle rotations, see Euler Angles.```

example

````eul = rotm2eul(rotm,sequence)` converts a rotation matrix to Euler angles. The Euler angles are specified in the axis rotation sequence, `sequence`. The default order for Euler angle rotations is `"ZYX"`.```

## Examples

collapse all

```rotm = [0 0 1; 0 1 0; -1 0 0]; eulZYX = rotm2eul(rotm)```
```eulZYX = 1×3 0 1.5708 0 ```
```rotm = [0 0 1; 0 1 0; -1 0 0]; eulZYZ = rotm2eul(rotm,'ZYZ')```
```eulZYZ = 1×3 -3.1416 -1.5708 -3.1416 ```

## Input Arguments

collapse all

Rotation matrix, specified as a 3-by-3-by-n matrix containing n rotation matrices. Each rotation matrix has a size of 3-by-3 and is orthonormal. The input rotation matrix must be in the premultiply form for rotations.

Note

Rotation matrices that are slightly non-orthonormal can give complex outputs. Consider validating your matrix before inputting to the function.

Example: `[0 0 1; 0 1 0; -1 0 0]`

Axis rotation sequence for the Euler angles, specified as one of these string scalars:

• `"ZYX"` (default) – The order of rotation angles is z-axis, y-axis, x-axis.

• `"ZYZ"` – The order of rotation angles is z-axis, y-axis, z-axis.

• `"XYZ"` – The order of rotation angles is x-axis, y-axis, z-axis.

Data Types: `string` | `char`

## Output Arguments

collapse all

Euler rotation angles in radians, returned as an n-by-3 array of Euler rotation angles. Each row represents one Euler angle set.

Example: `[0 0 1.5708]`

## Version History

Introduced in R2015a