単位ベクトルを回転行列で表現する方法
조회 수: 33 (최근 30일)
이전 댓글 표시
写真のような単位ベクトル(i,j,k)で作った座標系を、回転行列で表現したいと考えているのですが、どのような計算をMATLAB上で行えばよいのでしょうか?
今解析に用いているデータは一つの単位ベクトル(i,j,k)あたり3行、152列データがあり、このデータを3行3列の回転行列で表現する方法が分かりません。どなたか詳しい方がいらっしゃいましたらご教示ください。よろしくお願い致します。
댓글 수: 0
채택된 답변
Hernia Baby
2021년 10월 5일
行列の回転と変換 のRx,Ry,Rzの掛け算で表されます
syms t x y z
Rx = [1 0 0; 0 cos(t) -sin(t); 0 sin(t) cos(t)]
Ry = [cos(t) 0 sin(t); 0 1 0; -sin(t) 0 cos(t)]
Rz = [cos(t) -sin(t) 0; sin(t) cos(t) 0; 0 0 1]
試しに(1,0,0)の単位座標をY軸周りに-90°回転させてみましょう
A = [1;0;0];
A_ry = subs(Ry*A,t,-pi/2)
図示します
plot3([0 A(1)],[0 A(2)],[0 A(3)],'bo--')
hold on
plot3([0 A_ry(1)],[0 A_ry(2)],[0 A_ry(3)],'ro--')
xlim([0 1])
ylim([0 1])
zlim([0 1])
댓글 수: 4
Hernia Baby
2021년 10월 6일
であれば上記式を使えば問題ありません。
少し実用的にしてみましょうか
Rx = @(t) [1 0 0; 0 cos(t) -sin(t); 0 sin(t) cos(t)];
Ry = @(t) [cos(t) 0 sin(t); 0 1 0; -sin(t) 0 cos(t)];
Rz = @(t) [cos(t) -sin(t) 0; sin(t) cos(t) 0; 0 0 1];
変換前の3×4の行列Aを作ります
これは3×1のベクトルを4つ並べたイメージです
A = [[1;0;0] [0;1;0] [0;0;1] [1;1;1]]
pi/2ずつ回転させます
Ar = Rx(pi/2)*Ry(pi/2)*Rz(pi/2)*A
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 アセンブリ에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!