Main Content

rotm2tform

回転行列の同次変換への変換

説明

tform = rotm2tform(rotm) は、回転行列 rotm を同次変換行列 tform に変換します。入力回転行列は、回転について左から掛ける形式になっていなければなりません。変換行列を使用する場合、変換行列に対して変換する座標を左から掛けます (右から掛けるのではなく)。

すべて折りたたむ

rotm = [1 0 0 ; 0 -1 0; 0 0 -1];
tform = rotm2tform(rotm)
tform = 4×4

     1     0     0     0
     0    -1     0     0
     0     0    -1     0
     0     0     0     1

入力引数

すべて折りたたむ

回転行列。n 個の回転行列を含む 2×2×n または 3×3×n の配列として指定します。各回転行列は 2 行 2 列または 3 行 3 列で、正規直交です。入力回転行列は、回転について左から掛ける形式になっていなければなりません。

メモ

正規直交でない回転行列は関数 normalize で正規化できます。

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

R=[r11r12r21r22]

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

R=[r11r12r13r11r22r23r31r32r33]

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

出力引数

すべて折りたたむ

同次変換。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]

詳細

すべて折りたたむ

2 次元同次変換行列

2 次元同次変換行列は、SO(2) 回転と xy 並進の両方で構成されます。

SO(2) 回転の詳細については、so2 オブジェクトの2 次元の正規直交回転行列のセクションを参照してください。

並進は x 軸方向および y 軸方向で、2 要素の列ベクトルになります。

t=[xy]

SO(2) 回転行列 R を並進ベクトル t に適用して、同次変換行列 T が作成されます。回転行列は変換行列の左上に 2 行 2 列の部分行列として含まれ、並進ベクトルは最後の列に 2 要素ベクトルとして含まれます。

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

3 次元同次変換行列

3 次元同次変換行列は、SO(3) 回転と xyz 並進の両方で構成されます。

SO(3) 回転の詳細については、so3 オブジェクトの3 次元の正規直交回転行列のセクションを参照してください。

並進は x 軸方向、y 軸方向、および z 軸方向で、3 要素の列ベクトルになります。

t=[xyz]

SO(3) 回転行列 R を並進ベクトル t に適用して、同次変換行列 T が作成されます。回転行列は変換行列の左上に 3 行 3 列の部分行列として含まれ、並進ベクトルは最後の列に 3 要素ベクトルとして含まれます。

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

拡張機能

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

バージョン履歴

R2015a で導入

すべて展開する