Main Content


Quaternion normalization



quatNormalized = normalize(quat) normalizes the quaternion.

Given a quaternion of the form Q=a+bi+cj+dk, the normalized quaternion is defined as Q/a2+b2+c2+d2.


collapse all

Quaternions can represent rotations when normalized. You can use normalize to normalize a scalar, elements of a matrix, or elements of a multi-dimensional array of quaternions. Create a column vector of quaternions, then normalize them.

quatArray = quaternion([1,2,3,4; ...
                        2,3,4,1; ...
quatArrayNormalized = normalize(quatArray)
quatArrayNormalized = 3x1 quaternion array
     0.18257 + 0.36515i + 0.54772j +  0.7303k
     0.36515 + 0.54772i +  0.7303j + 0.18257k
     0.54772 +  0.7303i + 0.18257j + 0.36515k

Input Arguments

collapse all

Quaternion to normalize, specified as a quaternion object or an array of quaternion objects of any dimensionality.

Output Arguments

collapse all

Normalized quaternion, returned as a quaternion object or an array of quaternion objects of the same size as the quat argument.

Extended Capabilities

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

Version History

Introduced in R2018b