ドキュメンテーション

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

rand

説明

X = rand は、区間 (0,1) の一様分布した乱数を 1 つ返します。

X = rand(n) は、nn 列の乱数の行列を返します。

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

X = rand(sz) は、乱数の配列を返します。サイズ ベクトル szsize(X) を指定します。たとえば、rand([3 4]) は 3 行 4 列の行列を返します。

X = rand(___,typename) は、データ型が typename の乱数の配列を返します。typename の入力値は 'single' または 'double' です。前述の構文の入力引数のいずれかを使用できます。

X = rand(___,'like',p)p と同様の乱数の配列を返します。ここでいう同様とはオブジェクト タイプが p と同じという意味です。typename または 'like' のどちらか一方のみを指定できます。

メモ

関数 rand への 'seed''state' および 'twister' 入力は推奨されません。代わりに関数 rng を使用します。詳細については、rand と randn の非推奨構文の置換を参照してください。

すべて折りたたむ

0 から 1 までの範囲の一様分布した乱数から成る 5 行 5 列の行列を生成します。

r = rand(5)
r = 5×5

    0.8147    0.0975    0.1576    0.1419    0.6557
    0.9058    0.2785    0.9706    0.4218    0.0357
    0.1270    0.5469    0.9572    0.9157    0.8491
    0.9134    0.9575    0.4854    0.7922    0.9340
    0.6324    0.9649    0.8003    0.9595    0.6787

区間 (-5,5) の一様分布した数値から成る 10 行 1 列のベクトルを生成します。

r = -5 + (5+5)*rand(10,1)
r = 10×1

    3.1472
    4.0579
   -3.7301
    4.1338
    1.3236
   -4.0246
   -2.2150
    0.4688
    4.5751
    4.6489

一般に、区間 (a,b) の N 個の乱数は、式 r = a + (b-a).*rand(N,1) を使って生成できます。

関数 randi (rand ではなく) を使用して、10 から 50 までの範囲の一様分布した 5 つのランダムな整数を生成します。

r = randi([10 50],1,5)
r = 1×5

    43    47    15    47    35

区間 (0,1) の実数部と虚数部から成るランダムな複素数を 1 つ生成します。

a = rand + 1i*rand
a = 0.8147 + 0.9058i

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

s = rng;
r = rand(1,5)
r = 1×5

    0.8147    0.9058    0.1270    0.9134    0.6324

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

rng(s);
r1 = rand(1,5)
r1 = 1×5

    0.8147    0.9058    0.1270    0.9134    0.6324

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

3 x 2 x 3 の乱数の配列を作成します。

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

    0.8147    0.9134
    0.9058    0.6324
    0.1270    0.0975


X(:,:,2) =

    0.2785    0.9649
    0.5469    0.1576
    0.9575    0.9706


X(:,:,3) =

    0.9572    0.1419
    0.4854    0.4218
    0.8003    0.9157

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

r = rand(1,4,'single')
r = 1x4 single row vector

    0.8147    0.9058    0.1270    0.9134

class(r)
ans = 
'single'

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

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

    0.8147    0.1270
    0.9058    0.9134

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

X = rand(size(A));

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

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

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

X = rand(size(p),'like',p)
X = 2x2 single matrix

    0.8147    0.1270
    0.9058    0.9134

class(X)
ans = 
'single'

Parallel Computing Toolbox™ がある場合、基となるデータ型に single を指定して 1000 行 1000 列の乱数の分散配列を作成します。distributed データ型の場合、'like' 構文は、主なデータ型に加えて基となるデータ型もクローンします。

p = rand(1000,'single','distributed');
Starting parallel pool (parpool) using the 'local' profile ...
connected to 6 workers.

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

X = rand(size(p),'like',p);
class(X)
ans =

distributed
classUnderlying(X)
ans =
single

入力引数

すべて折りたたむ

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

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

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

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

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

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

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

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

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

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

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

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

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

例: sz = [2,3,4] は、2 x 3 x 4 の配列を作成します。

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

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

例: rand(5,'single')

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

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

データ型: single | double
複素数のサポート: あり

ヒント

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

拡張機能

R2006a より前に導入