Main Content

quat2eul

Convert quaternion to Euler angles

Description

eul = quat2eul(quat) converts a quaternion rotation, quat, to the corresponding Euler angles, eul. The default order for Euler angle rotations is "ZYX".

example

eul = quat2eul(quat,sequence) converts a quaternion into Euler angles. The Euler angles are specified in the axis rotation sequence, sequence. The default order for Euler angle rotations is "ZYX".

example

[eul,eulAlt] = quat2eul(___) also returns an alternate set of Euler angles that represents the same rotation eulAlt.

Examples

collapse all

quat = [0.7071 0.7071 0 0];
eulZYX = quat2eul(quat)
eulZYX = 1×3

         0         0    1.5708

quat = [0.7071 0.7071 0 0];
eulZYZ = quat2eul(quat,'ZYZ')
eulZYZ = 1×3

   -1.5708    1.5708    1.5708

Input Arguments

collapse all

Unit quaternion, specified as an n-by-4 matrix or n-element vector of quaternion objects containing n quaternions. If the input is a matrix, each row is a quaternion vector of the form q = [w x y z], with w as the scalar number.

Example: [0.7071 0.7071 0 0]

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

  • "ZYX" (default)

  • "ZYZ"

  • "ZXY"

  • "ZXZ"

  • "YXY"

  • "YZX"

  • "YXZ"

  • "YZY"

  • "XYX"

  • "XYZ"

  • "XZX"

  • "XZY"

Each character indicates the corresponding axis. For example, if the sequence is "ZYX", then the three specified Euler angles are interpreted in order as a rotation around the z-axis, a rotation around the y-axis, and a rotation around the x-axis. When applying this rotation to a point, it will apply the axis rotations in the order x, then y, then z.

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]

Alternate Euler rotation angle solution 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]

Extended Capabilities

C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.

Version History

Introduced in R2015a

expand all