ドキュメンテーション

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

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 =

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

サンプリング区間 [-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 =

     9    10     2    10     7

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

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

     9    10     2    10     7

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

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

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

   408   457
   453   317
    64    49


X(:,:,2) =

   140   483
   274    79
   479   486


X(:,:,3) =

   479    71
   243   211
   401   458

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

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

     82     91     13     92

class(r)
ans =

int16

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

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

     9     2
    10    10

上記の 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 =

    9    2
   10   10

class(X)
ans =

int8

関連する例

入力引数

すべて折りたたむ

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

例: randi(10,5)

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

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

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

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

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

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

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

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

  • いずれかの次元のサイズが 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

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

  • いずれかの次元のサイズが 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

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

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

データ型: char

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

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

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

詳細

すべて折りたたむ

ヒント

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

参考

| | | |

R2008b で導入

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