Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

randrot

一様分布のランダムな回転

説明

R = randrot は、ランダムな回転の一様分布から得られる単位四元数を返します。

R = randrot(m) は、ランダムな回転の一様分布から得られる単位四元数の mm 列の行列を返します。

R = randrot(m1,...,mN) は、m1×...×mN のランダムな単位 quaternion の配列を返します。ここで、m1,…,mN は各次元のサイズを示します。たとえば、randrot(3,4) は、3 行 4 列のランダムな単位 quaternion の行列を返します。

R = randrot([m1,...,mN]) は、m1×...×mN のランダムな単位 quaternion の配列を返します。ここで、m1,…,mN は各次元のサイズを示します。たとえば、randrot([3,4]) は、3 行 4 列のランダムな単位 quaternion の行列を返します。

すべて折りたたむ

一様分布のランダムな回転の 3 行 3 列の行列を生成します。

r = randrot(3)
r = 3x3 quaternion array
      0.17446 +  0.59506i -  0.73295j +  0.27976k      0.69704 - 0.060589i +  0.68679j -  0.19695k      0.35191 +  0.74478i +  0.52322j -  0.21842k
      0.21908 -  0.89875i -    0.298j +  0.23548k    -0.049744 +  0.59691i +  0.56459j +  0.56786k      0.17527 -  0.46955i +  0.52986j -  0.68414k
       0.6375 +  0.49338i -  0.24049j +  0.54068k       0.2979 -  0.53568i +  0.31819j +  0.72323k     -0.30189 -  0.22864i -  0.83159j +  0.40626k

500 個のランダムな quaternion のベクトルを作成します。rotatepointを使用して、点 (1, 0, 0) に適用されるランダムな回転の分布を可視化します。

q = randrot(500,1);

pt = rotatepoint(q, [1 0 0]);

figure
scatter3(pt(:,1), pt(:,2), pt(:,3))
axis equal

Figure contains an axes object. The axes object contains an object of type scatter.

入力引数

すべて折りたたむ

正方 quaternion 行列のサイズ。整数値として指定します。m0 または負の場合、R は空の行列として返されます。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

各次元のサイズ。2 つ以上のコンマ区切りの整数値として指定します。いずれかの次元のサイズが 0 または負の場合、R は空の配列として返されます。

例: randrot(2,3) は、ランダムな四元数の 2 行 3 列の行列を返します。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

各次元のサイズのベクトル。2 つ以上の整数値の行ベクトルとして指定します。いずれかの次元のサイズが 0 または負の場合、R は空の配列として返されます。

例: randrot([2,3]) は、ランダムな四元数の 2 行 3 列の行列を返します。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

出力引数

すべて折りたたむ

ランダムな四元数。quaternion オブジェクト、または quaternion オブジェクトの配列として返されます。

参照

[1] Shoemake, K. "Uniform Random Rotations." Graphics Gems III (K. David, ed.). New York: Academic Press, 1992.

拡張機能

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

バージョン履歴

R2019b で導入