randrot

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

Описание

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

пример

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

пример

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

R = randrot([m1,...,mN]) возвращает m1-...-by- m, n массив случайных модульных кватернионов, где m1m, n укажите на размер каждой размерности. Например, 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 случайных кватернионов. Используйте rotatepoint, чтобы визуализировать распределение случайных вращений, примененных к точке (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. "Универсальные Случайные Вращения". Графические Драгоценные камни III (К. Дэвид, редактор). Нью-Йорк: Academic Press, 1992.

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

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

Введенный в R2020a