Main Content

Esta página se ha traducido mediante traducción automática. Haga clic aquí para ver la última versión en inglés.

randrot

Rotaciones aleatorias distribuidas uniformemente

Desde R2019b

Descripción

R = randrot devuelve un cuaternión unitario extraído de una distribución uniforme de rotaciones aleatorias.

ejemplo

R = randrot(m) devuelve una matriz m-por- m de cuaterniones unitarios extraídos de una distribución uniforme de rotaciones aleatorias.

ejemplo

R = randrot(m1,...,mN) devuelve un arreglo de cuaterniones unitarios aleatorios de m1-por-...-por- mN , donde m1,…, mN indican el tamaño de cada dimensión. Por ejemplo, randrot(3,4) devuelve una matriz de 3 por 4 de cuaterniones unitarios aleatorios.

R = randrot([m1,...,mN]) devuelve un arreglo de cuaterniones unitarios aleatorios de m1-por-...-por- mN , donde m1,…, mN indican el tamaño de cada dimensión. Por ejemplo, randrot([3,4]) devuelve una matriz de 3 por 4 de cuaterniones unitarios aleatorios.

Ejemplos

contraer todo

Genere una matriz de 3 por 3 de rotaciones aleatorias distribuidas uniformemente.

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

Crea un vector de 500 cuaterniones aleatorios. Utilice punto de rotación para visualizar la distribución de las rotaciones aleatorias aplicadas al punto (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.

Argumentos de entrada

contraer todo

Tamaño de la matriz de cuaterniones cuadrados, especificado como un valor entero. Si m es 0 o negativo, entonces R se devuelve como una matriz vacía.

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Tamaño de cada dimensión, especificado como dos o más valores enteros separados por comas. Si el tamaño de cualquier dimensión es 0 o negativo, entonces R se devuelve como un arreglo vacía.

Ejemplo: randrot(2,3) devuelve una matriz de 2 por 3 de cuaterniones aleatorios.

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Vector de tamaño de cada dimensión, especificado como un vector fila de dos o más valores enteros. Si el tamaño de cualquier dimensión es 0 o negativo, entonces R se devuelve como un arreglo vacía.

Ejemplo: randrot([2,3]) devuelve una matriz de 2 por 3 de cuaterniones aleatorios.

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Argumentos de salida

contraer todo

Cuaterniones aleatorios, devueltos como un objeto quaternion o un arreglo de objetos quaternion .

Referencias

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

Capacidades ampliadas

Generación de código C/C++
Genere código C y C++ mediante MATLAB® Coder™.

Historial de versiones

Introducido en R2019b