Main Content

randrot

균등분포를 따르는 무작위 회전

R2019b 이후

설명

R = randrot는 균등분포를 따르는 무작위 회전으로부터 추출된 단위 쿼터니언을 반환합니다.

예제

R = randrot(m)은 균등분포를 따르는 무작위 회전으로부터 추출된 단위 쿼터니언으로 구성된 m×m 행렬을 반환합니다.

예제

R = randrot(m1,...,mN)은 무작위 단위 쿼터니언으로 구성된 m1×...×mN 배열을 반환하며, 여기서 m1,…, mN은 각 차원의 크기를 나타냅니다. 예를 들어 randrot(3,4)는 무작위 단위 쿼터니언으로 구성된 3×4 행렬을 반환합니다.

R = randrot([m1,...,mN])은 무작위 단위 쿼터니언으로 구성된 m1×...×mN 배열을 반환하며, 여기서 m1,…, mN은 각 차원의 크기를 나타냅니다. 예를 들어 randrot([3,4])는 무작위 단위 쿼터니언으로 구성된 3×4 행렬을 반환합니다.

예제

모두 축소

균등분포를 따르는 무작위 회전으로 구성된 3×3 행렬을 생성합니다.

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

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

입력 인수

모두 축소

정사각 쿼터니언 행렬의 크기로, 정수 값으로 지정됩니다. m0 또는 음수이면 R은 비어 있는 행렬로 반환됩니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

각 차원의 크기로, 2개 이상의 쉼표로 구분된 정수 값으로 지정됩니다. 차원의 크기가 0 또는 음수이면 R은 비어 있는 배열로 반환됩니다.

예: randrot(2,3)은 무작위 쿼터니언으로 구성된 2×3 행렬을 반환합니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

각 차원의 크기로 구성된 벡터로, 2개 이상의 정수 값으로 구성된 행 벡터로 지정됩니다. 차원의 크기가 0 또는 음수이면 R은 비어 있는 배열로 반환됩니다.

예: randrot([2,3])은 무작위 쿼터니언으로 구성된 2×3 행렬을 반환합니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

출력 인수

모두 축소

무작위 쿼터니언으로, quaternion 객체 또는 quaternion 객체로 구성된 배열로 반환됩니다.

참고 문헌

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

확장 기능

C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.

버전 내역

R2019b에 개발됨