rotm2eul

Convert rotation matrix to Euler angles

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".

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]