Main Content

Cette page a été traduite par traduction automatique. Cliquez ici pour voir la dernière version en anglais.

randrot

Rotations aléatoires uniformément réparties

Depuis R2019b

Description

R = randrot renvoie un quaternion unitaire tiré d'une distribution uniforme de rotations aléatoires.

exemple

R = randrot(m) renvoie une matrice m-by- m de quaternions unitaires tirés d'une distribution uniforme de rotations aléatoires.

exemple

R = randrot(m1,...,mN) renvoie un tableau m1-by-...-by- mN tableau de quaternions unitaires aléatoires, où m1,…, mN indiquent la taille de chaque dimension. Par exemple, randrot(3,4) renvoie une matrice 3 x 4 de quaternions unitaires aléatoires.

R = randrot([m1,...,mN]) renvoie un tableau m1-by-...-by- mN tableau de quaternions unitaires aléatoires, où m1,…, mN indiquent la taille de chaque dimension. Par exemple, randrot([3,4]) renvoie une matrice 3 x 4 de quaternions unitaires aléatoires.

Exemples

réduire tout

Générez une matrice 3 par 3 de rotations aléatoires uniformément distribuées.

r = randrot(3)
r = 3x3 quaternion array
      0.17446 +  0.59506i -  0.73295j +  0.27976k      0.69704 - 0.060589i +  0.68679j -  0.19695k      0.35191 +  0.74478i +  0.52322j -  0.21842k
      0.21908 -  0.89875i -    0.298j +  0.23548k    -0.049744 +  0.59691i +  0.56459j +  0.56786k      0.17527 -  0.46955i +  0.52986j -  0.68414k
       0.6375 +  0.49338i -  0.24049j +  0.54068k       0.2979 -  0.53568i +  0.31819j +  0.72323k     -0.30189 -  0.22864i -  0.83159j +  0.40626k

Créez un vecteur de 500 quaternions aléatoires. Utilisez point de rotation pour visualiser la distribution des rotations aléatoires appliquées au point (1, 0, 0).

q = randrot(500,1);

pt = rotatepoint(q, [1 0 0]);

figure
scatter3(pt(:,1), pt(:,2), pt(:,3))
axis equal

Figure contains an axes object. The axes object contains an object of type scatter.

Arguments d'entrée

réduire tout

Taille de la matrice de quaternions carrée, spécifiée sous forme de valeur entière. Si m est 0 ou négatif, alors R est renvoyé sous forme de matrice vide.

Types de données : single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Taille de chaque dimension, spécifiée sous la forme d'au moins deux valeurs entières séparées par des virgules. Si la taille d'une dimension est 0 ou négative, alors R est renvoyé sous forme de tableau vide.

Exemple : randrot(2,3) renvoie une matrice 2 par 3 de quaternions aléatoires.

Types de données : single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Vecteur de taille de chaque dimension, spécifié sous la forme d'un vecteur ligne de deux valeurs entières ou plus. Si la taille d'une dimension est 0 ou négative, alors R est renvoyé sous forme de tableau vide.

Exemple : randrot([2,3]) renvoie une matrice 2 par 3 de quaternions aléatoires.

Types de données : single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Arguments de sortie

réduire tout

Quaternions aléatoires, renvoyés sous la forme d'un objet quaternion ou d'un tableau d'objets quaternion .

Références

[1] Shoemake, K. "Uniform Random Rotations." Graphics Gems III (K. David, ed.). New York: Academic Press, 1992.

Capacités étendues

Génération de code C/C++
Générez du code C et C++ avec MATLAB® Coder™.

Historique des versions

Introduit dans R2019b