randrot

Равномерно распределенные случайные повороты

Описание

R = randrot возвращает модуль кватернион, полученный из равномерного распределения случайных вращений.

пример

R = randrot(m) возвращает m-by- m матрица модуля кватернионов, полученная из равномерного распределения случайных вращений.

пример

R = randrot(m1,...,mN) возвращает m1-by-... -by- mN массив кватернионов случайных модулей, где m1, …, mN указать размер каждой размерности. Для примера, randrot(3,4) возвращает матрицу 3 на 4 кватернионов случайных модулей.

R = randrot([m1,...,mN]) возвращает m1-by-... -by- mN массив кватернионов случайных модулей, где m1, …, mN указать размер каждой размерности. Для примера, randrot([3,4]) возвращает матрицу 3 на 4 кватернионов случайных модулей.

Примеры

свернуть все

Сгенерируйте матрицу 3 на 3 равномерно распределенных случайных вращений.

r = randrot(3)
r=3×3 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

Создать вектор из 500 случайных кватернионов. Используйте точку поворота, чтобы визуализировать распределение случайных поворотов, примененных к точке (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. The axes contains an object of type scatter.

Входные параметры

свернуть все

Размер квадратной кватернионной матрицы, заданный в виде целого значения. Если m является 0 или отрицательное, затем R возвращается как пустая матрица.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Размер каждой размерности, заданный как два или более целочисленных значений. Если размер любой размерности 0 или отрицательное, затем R возвращается как пустой массив.

Пример: randrot(2,3) возвращает матрицу 2 на 3 случайных кватернионов.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Вектор размера каждой размерности, заданный как вектор-строка из двух или более целочисленных значений. Если размер любой размерности 0 или отрицательное, затем R возвращается как пустой массив.

Пример: randrot([2,3]) возвращает матрицу 2 на 3 случайных кватернионов.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Выходные аргументы

свернуть все

Случайные кватернионы, возвращенные как кватернион или массив кватернионов.

Типы данных: quaternion

Ссылки

[1] Shoemake, K. «Uniform Random Rotations». Graphics Gems III (K. David, ed.). Нью-Йорк: Академическая пресса, 1992.

Расширенные возможности

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ MATLAB ®

.

См. также

Введенный в R2021a