Main Content

randg

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

構文

Y = randg
Y = randg(A)
Y = randg(A,m)
Y = randg(A,m,n,p,...)
Y = randg(A,[m,n,p,...])
Y = randg(...,classname)
Y = randg(...,'like',X)
Y = randg(...,'like',classname)

説明

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 ... の配列またはスカラーのいずれかです。

Y = randg(...,classname) は、指定されたクラスのガンマ分布から選択されたランダム値の配列を返します。classnamedouble または single です。

Y = randg(...,'like',X) または Y = randg(...,'like',classname) は、それぞれ X または classname と同じクラスのガンマ分布から選択されたランダム値の配列を返します。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 より前に導入

参考