주요 콘텐츠

randrot

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

설명

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 = 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 object. The axes object contains an object of type scatter.

입력 인수

모두 축소

정사각 쿼터니언 행렬의 크기로, 정수 값으로 지정됩니다. 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++ 코드를 생성할 수 있습니다.

참고 항목