주요 콘텐츠

이 페이지는 기계 번역을 사용하여 번역되었습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

dcm2quat

방향 코사인 행렬을 쿼터니언으로 변환

설명

q = dcm2quat(dcm)는 주어진 방향 코사인 행렬 dcm에 대한 쿼터니언 q를 계산합니다.

방향 코사인 행렬이 유효하지 않거나 직교하지 않으면 q = dcm2quat(dcm,action)는 동작 action를 수행합니다. 방향 코사인 행렬 입력과 결과 쿼터니언은 프레임 A에서 프레임 B로의 우측 수동 변환을 나타냅니다.

q = dcm2quat(dcm,action,tolerance)는 허용오차 tolerance를 사용하여 방향 코사인 행렬 dcm가 허용오차 내에 있는지 평가합니다.

예제

예제

모두 축소

방향 코사인 행렬에서 쿼터니언을 결정합니다.

dcm = [0 1 0; 1 0 0; 0 0 -1];
q = dcm2quat(dcm)
q = 1×4

         0    0.7071    0.7071         0

이 예제는 여러 방향의 코사인 행렬에서 쿼터니언을 결정하는 방법을 보여줍니다.

dcm        = [ 0 1 0; 1 0 0; 0 0 -1]; 
dcm(:,:,2) = [ 0.4330    0.2500   -0.8660; ...
               0.1768    0.9186    0.3536; ...
               0.8839   -0.3062    0.3536];
q = dcm2quat(dcm)
q = 2×4

         0    0.7071    0.7071         0
    0.8224    0.2006    0.5320    0.0223

허용오차 범위 내에서 방향 코사인 행렬 dcm에서 쿼터니언을 결정합니다.

dcm = [0 1 0; 1 0 0; 0 0 -1];
q = dcm2quat(dcm, 'Warning', 0.01)
q = 1×4

         0    0.7071    0.7071         0

입력 인수

모두 축소

3x3xM 행렬로 지정된 방향 코사인 행렬입니다.

데이터형: double

방향 코사인 행렬이 유효하지 않은 경우, 즉 직교하지 않은 경우의 함수 동작입니다.

  • 'Warning' — 경고를 표시하고 방향 코사인 행렬이 잘못되었음을 나타냅니다.

  • 'Error' — 오류를 표시하고 방향 코사인 행렬이 잘못되었음을 나타냅니다.

  • 'None' — 경고나 오류를 표시하지 않습니다.

데이터형: char | string

스칼라로 지정된 방향 코사인 행렬의 유효성에 대한 허용오차입니다. 다음 조건이 참이면 함수는 방향 코사인 행렬을 유효하다고 간주합니다.

  • 방향 코사인 행렬의 전치 행렬에 자기 자신을 곱한 값은 지정된 허용오차(transpose(dcm)*dcm == 1±tolerance) 내에서 1와 같습니다.

  • 방향 코사인 행렬의 행렬식은 지정된 허용오차(det(dcm) == 1±tolerance) 내에서 1와 같습니다.

데이터형: double

출력 인수

모두 축소

m x 4 행렬로 반환되는 쿼터니언입니다. q는 첫 번째 열에 스칼라 숫자를 갖습니다.

버전 내역

R2006b에 개발됨