ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

randg

単位スケールをもつガンマ乱数

構文

Y = randg
Y = randg(A)
Y = randg(A,m)
Y = randg(A,m,n,p,...)
Y = randg(A,[m,n,p,...])

説明

Y = randg は、単位スケールと形状をもつガンマ分布から選択されたスカラー乱数値を返します。

Y = randg(A) は、単位スケールをもつガンマ分布から選択されたランダム値の行列を返します。Y は、A と同じサイズです。randg は、A の対応する要素に等しい形状パラメーターを使用して、Y の各要素を作成します。

Y = randg(A,m) は、形状パラメーター A をもつガンマ分布から選択した乱数値が含まれている mm 列の行列を返します。A は、mm 列の行列またはスカラーです。A がスカラーの場合、randg は単一の形状パラメーター値を使用して Y のすべての要素を生成します。

Y = randg(A,m,n,p,...) または Y = randg(A,[m,n,p,...]) は、形状パラメーター A を使用してガンマ分布から選択されたランダム値の、m x n x p x ... の配列を返します。A は、m x n x p x ... の配列またはスカラーのいずれかです。

randg は、MATLAB® 関数 rand および randn を使用して、疑似乱数を作成します。生成された数列は rand および randn に基づく一様乱数発生器の設定値により定義されます。rng を使用して、共有乱数発生器を制御できます。詳細は、rng ドキュメンテーションを参照してください。

メモ

ガンマ乱数を生成してスケール パラメーターと形状パラメーターの両方を指定するには、gamrnd を呼び出してください。

例 1

形状パラメーターを 3 に指定してガンマ分布から抽出した値を含む、100 行 1 列の配列を作成します。

r = randg(3,100,1);

例 2

形状パラメーターを 3 と 2 に指定してガンマ分布から抽出した値を含む、100 行 2 列の配列を作成します。

A = [ones(100,1)*3,ones(100,1)*2];
r = randg(A,[100,2]);

例 3

randg から再現可能な出力を作成するには、randrandn で使用される乱数発生器を既定の起動設定にリセットします。このようにすると、MATLAB を再起動した場合と同じ乱数が randg によって出力されます。

rng('default')
randg(3,1,5)

ans =

    6.9223    4.3369    1.0505    3.2662   11.3269

例 4

rand および randn で使用される乱数発生器の設定を保存し、randg から 5 つの値を生成して設定値を復元してから、これらの値を繰り返します。

s = rng; % Obtain the current state of the random stream
r1 = randg(10,1,5)

r1 =

    9.4719    9.0433   15.0774   14.7763    6.3775

rng(s); % Reset the stream to the previous state
r2 = randg(10,1,5)

r2 =

    9.4719    9.0433   15.0774   14.7763    6.3775

r2 は、r1 とまったく同じ値を含みます。

例 5

現在時刻に基づくシード値を使用して、rand および randn が使用する乱数発生器を再初期化します。randg が返す値は毎回異なります。通常、この操作は MATLAB セッションごとに一度実行するだけで十分です。

rng('shuffle');
randg(2,1,5);

参考文献

[1] Marsaglia, G., and W. W. Tsang. “A Simple Method for Generating Gamma Variables.” ACM Transactions on Mathematical Software. Vol. 26, 2000, pp. 363–372.

拡張機能

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

参考

R2006a より前に導入