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.


Convert quaternion to Euler angles


eul = quat2eul(quat)
eul = quat2eul(quat,sequence)



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


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


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) – 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]

Extended Capabilities

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

Introduced in R2015a