Main Content

rand

説明

X = rand は、区間 (0,1) の一様分布から取り出された乱数スカラーを返します。

X = rand(n) は、一様分布の乱数からなる nn 列の行列を返します。

X = rand(sz1,...,szN) は、sz1×...×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" のどちらか一方のみを指定できます。

X = rand(s,___) は、既定のグローバル ストリームの代わりに、乱数ストリーム s から数値を生成します。ストリームを作成するには、RandStreamを使用します。s の後に、前述の構文にある任意の入力引数の組み合わせを指定できます。

すべて折りたたむ

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

乱数発生器の現在の状態を保存し、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

3×2×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'

区間 (0,1) 内に実数部と虚数部をもつ正方形領域での一様分布から、ランダムな複素数を 10 個生成します。

a = rand(10,1,"like",1i)
a = 10×1 complex

   0.8147 + 0.9058i
   0.1270 + 0.9134i
   0.6324 + 0.0975i
   0.2785 + 0.5469i
   0.9575 + 0.9649i
   0.1576 + 0.9706i
   0.9572 + 0.4854i
   0.8003 + 0.1419i
   0.4218 + 0.9157i
   0.7922 + 0.9595i

入力引数

すべて折りたたむ

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

  • 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×3×4 の配列を作成します。

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

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

例: rand(5,"single")

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

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

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

乱数ストリーム。RandStream オブジェクトとして指定します。

例: s = RandStream("dsfmt19937"); rand(s,[3 1])

ヒント

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

拡張機能

バージョン履歴

R2006a より前に導入

すべて展開する