Main Content

eul2rotm

Convert Euler angles to rotation matrix

Description

example

rotm = eul2rotm(eul) converts a set of Euler angles, eul, to the corresponding rotation matrix, rotm. When using the rotation matrix, premultiply it with the coordinates to be rotated (as opposed to postmultiplying). The default order for Euler angle rotations is "ZYX".

example

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

Examples

collapse all

eul = [0 pi/2 0];
rotmZYX = eul2rotm(eul)
rotmZYX = 3×3

    0.0000         0    1.0000
         0    1.0000         0
   -1.0000         0    0.0000

eul = [0 pi/2 pi/2];
rotmZYZ = eul2rotm(eul,'ZYZ')
rotmZYZ = 3×3

    0.0000   -0.0000    1.0000
    1.0000    0.0000         0
   -0.0000    1.0000    0.0000

Input Arguments

collapse all

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

Example: [0 0 1.5708]

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

Rotation matrix, returned 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. When using the rotation matrix, premultiply it with the coordinates to be rotated (as opposed to postmultiplying).

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

Extended Capabilities

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

See Also

Introduced in R2015a