quaternion
Description
Un quaternion est un nombre hyper-complexe en quatre parties utilisé dans les rotations et orientations tridimensionnelles.
Un nombre de quaternion est représenté sous la forme , où a, b, c et Les parties d sont des nombres réels, et i, j et k sont les éléments de base, satisfaisant l'équation : i2 = j2 = k2 = ijk = −1.
L'ensemble des quaternions, noté H, est défini dans un espace vectoriel à quatre dimensions sur les nombres réels, R4. Chaque élément de H a une représentation unique basée sur une combinaison linéaire des éléments de base i, j et k.
Toutes les rotations en 3D peuvent être décrites par un axe de rotation et un angle autour de cet axe. Un avantage des quaternions par rapport aux matrices de rotation est que l'axe et l'angle de rotation sont faciles à interpréter. Par exemple, considérons un point dans R3. Pour faire pivoter le point, vous définissez un axe de rotation et un angle de rotation.
La représentation quaternion de la rotation peut être exprimée par , où θ est l'angle de rotation et [ub, uc, et ud] est l'axe de rotation.
Création
Syntaxe
Description
crée un quaternion vide.quat
= quaternion()
crée un tableau de quaternions où les quatre parties de quaternions sont extraites des tableaux quat
= quaternion(A,B,C,D
)A
, B
, C
et D
. Toutes les entrées doivent avoir la même taille et être du même type de données.
crée un tableau de quaternions N-by-1 à partir d'une matrice N-by-4, où chaque colonne devient une partie de le quaternion.quat
= quaternion(matrix
)
crée un tableau de quaternions N-par 1 à partir d'un N-par-3 matrice de vecteurs de rotation, quat
= quaternion(RV
,"rotvec")RV
. Chaque ligne de RV
représente un vecteur de rotation en radians.
crée un tableau de quaternions N-par 1 à partir d'un N-par-3 matrice de vecteurs de rotation, quat
= quaternion(RV
,"rotvecd")RV
. Chaque ligne de RV
représente un vecteur de rotation en degrés.
crée un tableau de quaternions à partir de la transformation SE(3) quat
= quaternion(transformation
)transformation
.
crée un tableau de quaternions à partir de la rotation SO(3) quat
= quaternion(rotation
)rotation
.
Arguments en entrée
Fonctions d'objet
angvel | Vitesse angulaire du réseau de quaternions |
classUnderlying | Class of parts within quaternion |
compact | Convertir le tableau de quaternions en matrice N-by-4 |
conj | Complex conjugate of quaternion |
' | Transposition conjuguée complexe d'un tableau de quaternions |
dist | Distance angulaire en radians |
euler | Convertir un quaternion en angles d'Euler (radians) |
eulerd | Convertir un quaternion en angles d'Euler (degrés) |
exp | Exponential of quaternion array |
.\,ldivide | Element-wise quaternion left division |
log | Logarithme népérien du tableau de quaternions |
meanrot | Rotation moyenne des quaternions |
- | Soustraction de quaternions |
* | Multiplication des quaternions |
norm | Norme du quaternion |
normalize | Normalisation des quaternions |
ones | Créer un tableau de quaternions avec des parties réelles définies sur un et des parties imaginaires définies sur zéro |
parts | Extraire des parties de quaternion |
.^,power | Puissance des quaternions par éléments |
prod | Produit d'un tableau de quaternions |
randrot | Rotations aléatoires uniformément réparties |
./,rdivide | Element-wise quaternion right division |
rotateframe | Quaternion frame rotation |
rotatepoint | Rotation des points de quaternion |
rotmat | Convertir le quaternion en matrice de rotation |
rotvec | Convert quaternion to rotation vector (radians) |
rotvecd | Convert quaternion to rotation vector (degrees) |
slerp | Interpolation linéaire sphérique |
.*,times | Multiplication de quaternions par éléments |
' | Transposer le tableau de quaternions |
- | Quaternion unaire moins |
zeros | Créer un tableau de quaternions avec toutes les parties mises à zéro |
Exemples
Capacités étendues
Historique des versions
Introduit dans R2019b