Main Content

randperm

整数のランダム置換

説明

p = randperm(n) は、要素の重複しない 1 から n までの整数のランダム置換を含む行ベクトルを返します。

p = randperm(n,k) は、1 から n までの範囲で無作為に選択した k 個の一意の整数を含む行ベクトルを返します。

p = randperm(s,___) は、既定のグローバル ストリームの代わりに、乱数ストリーム s から、整数のランダム置換を生成します。ストリームを作成するには、RandStreamを使用します。s の後に、上記の構文にある任意の引数の組み合わせを指定します。

すべて折りたたむ

1 から 6 までの整数のランダム置換を生成します。randperm の入力はサンプリング区間の最大の整数を示します (区間の最小の整数は 1)。

r = randperm(6)
r = 1×6

     6     3     5     1     2     4

1 から 8 までの整数から 4 つの一意の整数を無作為に選択し、そのランダム置換を生成します (要素の重複なし)。

r1 = randperm(8,4)
r1 = 1×4

     6     4     7     3

4 つの一意の整数のランダム置換をもう 1 つ生成します。

r2 = randperm(8,4)
r2 = 1×4

     8     7     5     4

乱数発生器の現在の状態を保存し、1 から 8 までの整数のランダム置換を作成します。

s = rng;
r = randperm(8)
r = 1×8

     6     3     7     8     5     1     2     4

乱数発生器を s の状態に戻し、1 から 8 までの整数のランダム置換を新たに作成します。置換は前と同じになります。

rng(s)
r1 = randperm(8)
r1 = 1×8

     6     3     7     8     5     1     2     4

関数rngを使用して、乱数発生器の設定を指定できます。

入力引数

すべて折りたたむ

サンプリング区間内の整数の数。正の整数として指定します。randperm は、1 から n までの整数値を並べ替えます。

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

選択される整数の数。正の整数として指定します。また、kn 以下でなければなりません。

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

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

例: s = RandStream('dsfmt19937'); randperm(s,10)

ヒント

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

  • randperm によって返される配列には、整数の置換が含まれます (整数値の重複なし)。この動作は、非復元抽出と呼ばれることがあります。重複する値が必要な場合は、関数 randi を使用します。

  • randperm(n)randperm(n,n) は、いずれも 1 から n までの整数の置換を生成しますが、置換内で異なるランダムな順序を与えることができます。n の値が大きい場合は、randperm(n,n) の方が randperm(n) よりも高速です。

拡張機能

C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。

バージョン履歴

R2006a より前に導入