ドキュメンテーション

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

randn

正規分布の疑似乱数

構文

  • X = randn
  • X = randn(n)
  • X = randn(sz1,...,szN)
  • X = randn(sz)
  • X = randn(classname)
  • X = randn(n,classname)
  • X = randn(sz1,...,szN,classname)
  • X = randn(sz,classname)
  • X = randn('like',p)
  • X = randn(n,'like',p)
  • X = randn(sz1,...,szN,'like',p)
  • X = randn(sz,'like',p)

説明

X = randn は標準正規分布から取り出される疑似乱数スカラーを返します。

X = randn(n)nn 列の正規分布の疑似乱数値が格納された行列を返します。

X = randn(sz1,...,szN)sz1 x ... x szN の配列を返します。ここで sz1,...,szN はそれぞれの次元のサイズを示します。たとえば、randn(3,4) は 3 行 4 列の疑似乱数値の配列を返します。

X = randn(sz)size(X) (サイズ ベクトル sz で定義) の配列を返します。たとえば、randn([3,4]) は 3 行 4 列の疑似乱数値の配列を返します。

X = randn(classname) は正規分布の疑似乱数値を返します。ここで classname はデータ型を指定します。classname'single' または 'double' のいずれかになります。

X = randn(n,classname) はデータ型 classnamenn 列の配列を返します。

X = randn(sz1,...,szN,classname) はデータ型 classnamesz1 x ... x szN の配列を返します。

X = randn(sz,classname)size(X) (サイズ ベクトル sz で定義) と class(X) (classname で定義) の配列を返します。

X = randn('like',p)p と同様の正規分布の疑似乱数値を返します。ここでいう同様とはデータ型 (クラス) が同じという意味です。

X = randn(n,'like',p)p と同様の nn 列の配列を返します。

X = randn(sz1,...,szN,'like',p)p と同様の sz1 x ... x szN の配列を返します。

X = randn(sz,'like',p)p と同様の size(X) (サイズ ベクトル sz で定義) の配列を返します。

randn で生成された数列は randrandi、および randn に基づく一様乱数発生器の内部設定値で定義されます。共有乱数発生器は、rng を使用して制御できます。

すべて折りたたむ

乱数の正方行列

正規分布した乱数から成る 5 行 5 列の行列を生成します。

r = randn(5)
r =

    1.0347    0.8884    1.4384   -0.1022   -0.0301
    0.7269   -1.1471    0.3252   -0.2414   -0.1649
   -0.3034   -1.0689   -0.7549    0.3192    0.6277
    0.2939   -0.8095    1.3703    0.3129    1.0933
   -0.7873   -2.9443   -1.7115   -0.8649    1.1093

2 変量正規分布の乱数

指定した平均ベクトルと共分散行列をもつ 2 変数正規分布から値を生成します。

mu = [1 2];
sigma = [1 0.5; 0.5 2];
R = chol(sigma);
z = repmat(mu,10,1) + randn(10,2)*R
z =

    1.3271    3.3688
    2.0826    3.3279
    2.0061    2.9663
    0.3491    3.3285
    1.2571    3.3585
    0.0556    1.8450
   -0.3218    0.4258
    1.9248    1.6005
    1.0000    3.5770
    0.9451   -0.1597

ランダムな複素数

正規分布した実数部と虚数部から成る 1 つのランダムな複素数を生成します。

a = randn + 1i*randn
a =

   0.5377 + 1.8339i

乱数発生の制御

乱数発生器の現在の状態を保存し、1 行 5 列の乱数のベクトルを作成します。

s = rng;
r = randn(1,5)
r =

   -0.0245   -1.9488    1.0205    0.8617    0.0012

乱数発生器を s の状態に戻し、1 行 5 列の乱数のベクトルを新たに作成します。前と同じ値が得られます。

rng(s);
r1 = randn(1,5)
r1 =

   -0.0245   -1.9488    1.0205    0.8617    0.0012

乱数発生器の設定を指定するときは常に関数 rng を使用します (rand または randn は使用しません)。詳細は、「 rand と randn の非推奨構文の置換」を参照してください。

乱数の 3 次元配列

正規分布した乱数から成る 3 x 2 x 3 の配列を作成します。

X = randn([3,2,3])
X(:,:,1) =

   -0.0708   -2.1924
   -2.4863   -2.3193
    0.5812    0.0799


X(:,:,2) =

   -0.9485    0.8577
    0.4115   -0.6912
    0.6770    0.4494


X(:,:,3) =

    0.1006    0.8979
    0.8261   -0.1319
    0.5362   -0.1472

他のデータ型の乱数

単精度の乱数から成る 1 行 4 列のベクトルを作成します。

r = randn(1,4,'single')
r =

    0.5377    1.8339   -2.2588    0.8622
class(r)
ans =

single

既存の配列によるサイズの定義

正規分布した乱数の行列を既存の配列と同じサイズで作成します。

A = [3 2; -2 1];
sz = size(A);
X = randn(sz)
X =

    1.0078   -0.5046
   -2.1237   -1.2706

上記の 2 行のコードを 1 行にまとめた一般的なパターンを次に示します。

X = randn(size(A));

既存の配列で定義されるサイズと数値データ型

単精度の乱数から成る 2 行 2 列の行列を作成します。

p = single([3 2; -2 1]);

p とサイズおよびデータ型が同じである乱数の配列を作成します。

X = randn(size(p),'like',p)
X =

   -0.3826    0.8257
    0.6487   -1.0149
class(X)
ans =

single

関連する例

入力引数

すべて折りたたむ

n — 正方行列のサイズ整数値

正方行列のサイズ。整数値として指定します。

  • n0 の場合、X は空行列です。

  • n が負の場合、0 として扱われます。

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

sz1,...,szN — 各次元のサイズ (個別の引数として指定)整数値

各次元のサイズ。整数値の個別の引数として指定します。

  • いずれかの次元のサイズが 0 の場合、X は空の配列になります。

  • いずれかの次元のサイズが負の場合、そのサイズは 0 として扱われます。

  • 2 番目より後の次元のサイズが 1 の場合、その次元は randn で無視されます。たとえば randn(3,1,1,1) では 3 行 1 列の乱数のベクトルが生成されます。

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

sz — 各次元のサイズ (行ベクトルとして指定)整数値

各次元のサイズ。整数値の行ベクトルとして指定します。このベクトルの各要素は対応する次元のサイズを示します。

  • いずれかの次元のサイズが 0 の場合、X は空の配列になります。

  • いずれかの次元のサイズが負の場合、そのサイズは 0 として扱われます。

  • 2 番目より後の次元のサイズが 1 の場合、その次元は randn で無視されます。たとえば randn([3,1,1,1]) では 3 行 1 列の乱数のベクトルが生成されます。

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

classname — 作成するデータ型 (クラス)'double' (既定値) | 'single'

作成するデータ型 (クラス)。'double' または 'single' のいずれかの文字列として指定するか、randn をサポートする別のクラスの名前を指定します。

例: randn(5,'single')

データ型: char

p — 作成する配列のプロトタイプ数値配列

作成する配列のプロトタイプ。数値配列として指定します。

例: randn(5,'like',p)

データ型: single | double
複素数のサポート: はい

この情報は役に立ちましたか?