ドキュメンテーション

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

randi

整数の一様分布の疑似乱数

構文

  • X = randi(imax)
  • X = randi(imax,n)
  • X = randi(imax,sz1,...,szN)
  • X = randi(imax,sz)
  • X = randi(imax,classname)
  • X = randi(imax,n,classname)
  • X = randi(imax,sz1,...,szN,classname)
  • X = randi(imax,sz,classname)
  • X = randi(imax,'like',p)
  • X = randi(imax,n,'like',p)
  • X = randi(imax,sz1,...,szN,'like',p)
  • X = randi(imax,sz,'like',p)
  • X = randi([imin,imax],___)

説明

X = randi(imax)1imax の間の整数の疑似乱数スカラーを返します。

X = randi(imax,n) は区間 [1,imax] の離散一様分布から取り出される整数の疑似乱数が格納された nn 列の行列を返します。

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

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

X = randi(imax,classname) は整数の疑似乱数を返します。ここで classname はデータ型を指定します。classname'single''double''int8''uint8''int16''uint16''int32' または 'uint32' のいずれかになります。

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

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

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

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

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

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

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

X = randi([imin,imax],___) は上記の構文のいずれかを使用して区間 [imin,imax] の離散一様分布から取り出される整数が格納された配列を返します。

randi で生成される数列は、randrandnrandi で使用される一様乱数発生器の設定に基づきます。関数 randi では、1 つの一様な乱数値から 1 つの整数の乱数値を生成します。共有乱数発生器は、rng を使用して制御できます。

すべて折りたたむ

ランダムな整数の正方行列

1 から 10 までの範囲のランダムな整数から成る 5 行 5 列の行列を生成します。randi の最初の入力はサンプリング区間の最大の整数を示します (区間の最小の整数は 1 です)。

r = randi(10,5)
r =

     4     3     2    10     5
     6     5     4    10     6
     5     1     2     1    10
     7    10     5     8     5
     7     2     4     3    10

指定した区間のランダムな整数

サンプリング区間 [-5,5] の一様分布したランダムな整数から成る 10 行 1 列の列ベクトルを生成します。

r = randi([-5,5],10,1)
r =

     3
     4
    -4
     5
     1
    -4
    -2
     1
     5
     5

乱数発生の制御

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

s = rng;
r = randi(10,1,5)
r =

     1     6     9     7     2

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

rng(s);
r1 = randi(10,1,5)
r1 =

     1     6     9     7     2

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

ランダムな整数の 3 次元配列

1 から 500 までの範囲の一様分布したランダムな整数から成る 3 x 2 x 3 の配列を作成します。

X = randi(500,[3,2,3])
X(:,:,1) =

   185    79
   231   428
   491   323


X(:,:,2) =

   189   242
    96    61
   215   295


X(:,:,3) =

   114   126
   193   146
   292   309

他のデータ型のランダムな整数

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

r = randi(100,1,4,'int16')
r =

     28     55     96     97
class(r)
ans =

int16

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

1 から 10 までの範囲の一様分布したランダムな整数から成る行列を既存の配列と同じサイズで作成します。

A = [3 2; -2 1];
sz = size(A);
X = randi(10,sz)
X =

     3    10
     9     8

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

X = randi(10,size(A));

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

8 ビット符号付き整数の 2 行 2 列の行列を作成します。

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

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

X = randi(10,size(p),'like',p)
X =

    4    2
    6   10
class(X)
ans =

int8

関連する例

入力引数

すべて折りたたむ

imax — サンプリング区間の最大の整数正の整数

サンプリング区間の最大の整数。正の整数として指定します。randi はサンプリング区間 [1,imax] の一様分布から値を取り出します。

例: randi(10,5)

imin — サンプリング区間の最小の整数1 (既定値) | スカラー整数

サンプリング区間の最小の整数。スカラー整数として指定します。

iminimax はどちらも整数で、iminimax でなければなりません。

たとえば randi([50,100],5) は 50 以上 100 以下のランダムな整数から成る 5 行 5 列の行列を返します。

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

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

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

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

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

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

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

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

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

  • 2 番目より後の次元のサイズが 1 の場合、その次元は randi で無視されます。たとえば randi([5,10],3,1,1,1) では 5 から 10 までの範囲のランダムな整数から成る 3 行 1 列のベクトルが生成されます。

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

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

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

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

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

  • 2 番目より後の次元のサイズが 1 の場合、その次元は randi で無視されます。たとえば randi([5,10],[3,1,1,1]) では 5 から 10 までの範囲のランダムな整数から成る 3 行 1 列のベクトルが生成されます。

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

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

出力クラス。'double''single''int8''uint8''int16''uint16''int32''uint32' のいずれかの文字列として指定するか、randi をサポートする別のクラスの名前を指定します。

例: randi(5,5,'int8')

データ型: char

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

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

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

データ型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32
複素数のサポート: はい

詳細

すべて折りたたむ

ヒント

  • randi によって返される配列には、整数値の繰り返しが含まれる可能性があります。この動作は、復元抽出と呼ばれることがあります。すべての値が一意である必要がある場合は、randperm を使用します。

参考

| | | |

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