Main Content

rotvecd

四元数の回転ベクトルへの変換 (度単位)

R2020b 以降

説明

rotationVector = rotvecd(quat) は、quaternion 配列 quat を等価の度単位の回転ベクトルからなる N 行 3 列の行列に変換します。quat の要素は変換前に正規化されます。

すべて折りたたむ

ランダムな quaternion スカラーを度単位の回転ベクトルに変換します。

quat = quaternion(randn(1,4));
rotvecd(quat)
ans = 1×3

   96.6345 -119.0274   45.4312

入力引数

すべて折りたたむ

変換する四元数。quaternion オブジェクト、または任意の次元の quaternion オブジェクトの配列として指定します。

出力引数

すべて折りたたむ

回転ベクトル表現 (度単位)。回転ベクトルの N 行 3 列の数値行列として返されます。ここで、N は quat 引数内の四元数の数です。

各行は度単位の回転ベクトルの [X Y Z] 角度を表します。rotationVector の i 番目の行は要素 quat(i) に対応します。

回転ベクトルのデータ型は、quat の基となるデータ型と同じです。

データ型: single | double

アルゴリズム

3 次元での回転はすべて、3 要素の回転軸と回転角度の 4 要素で表現できます。回転軸が単位長さになるように制約されていれば、回転角度をベクトル要素に分散させることで表現を 3 要素に縮小できます。

四元数は軸角度形式で表現できることを思い出してください。

q=cos(θ2)+sin(θ2)(xi+yj+zk),

ここで、θ は度単位の回転角度であり、[x,y,z] は回転軸を表します。

次の形式の四元数を考えます。

q=a+bi+cj+dk,

回転角度は四元数の軸角度形式を使用して求めることができます。

θ=2cos1(a).

正規化された軸であると仮定すると、θ を b、c、および d の各部分に分散させることで、情報を失うことなく四元数を回転ベクトルに書き換えることができます。q の回転ベクトル表現は次のようになります。

qrv=θsin(θ2)[b,c,d].

拡張機能

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

バージョン履歴

R2020b で導入

参考

関数

オブジェクト