Main Content

tform2rotm

同次変換から回転行列を抽出

説明

rotm = tform2rotm(tform) は、同次変換 tform から回転コンポーネントを抽出し、それを正規直交回転行列 rotm として返します。tform の並進コンポーネントは無視されます。入力の同次変換は、変換について左から掛ける形式になっている必要があります。回転行列を使用する場合、回転行列に対して回転する座標を左から掛けます (右から掛けるのではなく)。

すべて折りたたむ

tform = [1 0 0 0; 0 -1 0 0; 0 0 -1 0; 0 0 0 1];
rotm = tform2rotm(tform)
rotm = 3×3

     1     0     0
     0    -1     0
     0     0    -1

入力引数

すべて折りたたむ

同次変換。3×3×n の配列または 4×4×n の配列として指定します。n は同次変換の数です。入力の同次変換は、変換について左から掛ける形式になっている必要があります。

2 次元同次変換行列の形式は次のとおりです。

T=[r11r12t1r21r22t2001]

3 次元同次変換行列の形式は次のとおりです。

T=[r11r12r13t1r21r22r23t2r31r32r33t30001]

例: [0 0 1 0; 0 1 0 0; -1 0 0 0; 0 0 0 1]

出力引数

すべて折りたたむ

回転行列。n 個の回転行列を含む 2×2×n または 3×3×n の配列として返されます。配列内の各回転行列は、サイズが 2 行 2 列または 3 行 3 列で、正規直交です。回転行列を使用する場合、回転行列に対して回転する座標を左から掛けます (右から掛けるのではなく)。

2 次元回転行列の形式は次のとおりです。

R=[r11r12r21r22]

3 次元回転行列の形式は次のとおりです。

R=[r11r12r13r11r22r23r31r32r33]

例: [0 0 1; 0 1 0; -1 0 0]

詳細

すべて折りたたむ

同次変換行列

同次変換行列は、直交回転と並進で構成されます。

2 次元変換

2 次元変換には、z 軸についての回転 θ (

Rz(θ)=[cosθsinθsinθcosθ]

) および x 軸と y 軸に沿った並進 (

t=[xy]

) が含まれているため、次の形式の 2 次元変換行列になります。

T=[Rt01×21]=[I2t01×21]·[R001×21]

3 次元変換

3 次元変換には、x 軸、y 軸、および z 軸についての 3 つの回転 (

Rx(ϕ)=[1000cosϕsinϕ0sinϕcosϕ],Ry(ψ)=[cosψ0sinψ010sinψ0cosψ],Rz(θ)=[cosθsinθ0sinθcosθ0001]

) に関する情報が含まれており、乗算後には xyz 軸についての回転 (

Rxyz=Rx(ϕ)Ry(ψ)Rz(θ)=[cosϕcosψcosθsinϕsinθcosϕcosψsinθsinϕcosθcosϕsinψsinϕcosψcosθ+cosϕsinθsinϕcosψsinθ+cosϕcosθsinϕsinψsinψcosθsinψsinθcosψ]

) になります。また、x 軸、y 軸、および z 軸に沿った並進 (

t=[xyz]

) が含まれています。したがって、次の形式の 3 次元変換行列になります。

T=[Rt01x31]=[I3t01x31]·[R001x31]

拡張機能

C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。

バージョン履歴

R2015a で導入

すべて展開する