Main Content

Quaternion Rotation

Rotate vector by quaternion

  • Library:
  • Aerospace Blockset / Utilities / Math Operations

  • Quaternion Rotation block


The Quaternion Rotation block calculates the resulting vector following the passive rotation of initial vector vec by quaternion q and returns a final vector, the rotated vector or vector of rotated vectors. Aerospace Blockset™ uses quaternions that are defined using the scalar-first convention. This block normalizes all quaternion inputs. For the equations used for the quaternion, initial vector, and final vector, see Algorithms.



expand all

Quaternions in the form of [q0, r0, ..., q1, r1, ... , q2, r2, ... , q3, r3, ...], specified as a quaternion or vector of quaternions.

Data Types: double

Initial vector or vector of vectors in the form of [v1, u1, ... , v2, u2, ... , v3, u3, ...].

Data Types: double


expand all

Final vector or vector of rotated vectors.

Data Types: double


The normalized quaternion has the form of


The vector has the form of


The Aerospace Blockset defines a passive quaternion rotation of the form:


where Ⓧ is the operator of a quaternion multiplication.

The final vector has the form of



[1] Stevens, Brian L., Frank L. Lewis. Aircraft Control and Simulation, Second Edition. Hoboken, NJ: Wiley–Interscience.

[2] Diebel, James. "Representing Attitude: Euler Angles, Unit Quaternions, and Rotation Vectors." Stanford University, Stanford, California, 2006.

Extended Capabilities

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

Version History

Introduced before R2006a