単位ベクトルを回転行列で表現する方法
18 次查看(过去 30 天)
显示 更早的评论
写真のような単位ベクトル(i,j,k)で作った座標系を、回転行列で表現したいと考えているのですが、どのような計算をMATLAB上で行えばよいのでしょうか?
今解析に用いているデータは一つの単位ベクトル(i,j,k)あたり3行、152列データがあり、このデータを3行3列の回転行列で表現する方法が分かりません。どなたか詳しい方がいらっしゃいましたらご教示ください。よろしくお願い致します。![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/758416/image.jpeg)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/758416/image.jpeg)
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!