exponenta event banner

randrot

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

Описание

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

пример

R = randrot(m) возвращает mоколо-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] Обувь, К. «Равномерные случайные вращения». Graphics Gems III (К. Дэвид, ред.). Нью-Йорк: Академическая пресса, 1992.

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

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.
Представлен в R2019a