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
をもつガンマ分布から選択した乱数値が含まれている m
行 m
列の行列を返します。A
は、m
行 m
列の行列またはスカラーです。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)
は、指定されたクラスのガンマ分布から選択されたランダム値の配列を返します。classname
は double
または 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
から再現可能な出力を作成するには、rand
と randn
で使用される乱数発生器を既定の起動設定にリセットします。このようにすると、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.
拡張機能
バージョン履歴
R2006a より前に導入