Main Content

tform2eul

Extract Euler angles from homogeneous transformation

Description

eul = tform2eul(tform) extracts the rotational component from a homogeneous transformation, tform, and returns it as Euler angles, eul. The translational components of tform are ignored. The input homogeneous transformation must be in the premultiply form for transformations. The default order for Euler angle rotations is "ZYX".

example

eul = tform2eul(tform, sequence) extracts the Euler angles, eul, from a homogeneous transformation, tform, using the specified rotation sequence, sequence. The default order for Euler angle rotations is "ZYX".

example

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

Examples

collapse all

tform = [1 0 0 0.5; 0 -1 0 5; 0 0 -1 -1.2; 0 0 0 1];
eulZYX = tform2eul(tform)
eulZYX = 1×3

         0         0    3.1416

tform = [1 0 0 0.5; 0 -1 0 5; 0 0 -1 -1.2; 0 0 0 1];
eulZYZ = tform2eul(tform,'ZYZ')
eulZYZ = 1×3

         0   -3.1416    3.1416

Input Arguments

collapse all

Homogeneous transformation, specified by a 4-by-4-by-n matrix of n homogeneous transformations. The input homogeneous transformation must be in the premultiply form for transformations.

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

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

Go to top of page