Contenuto principale

randperm

Permutazione casuale di numeri interi

Descrizione

p = randperm(n) restituisce un vettore contenente una permutazione casuale di numeri interi da 1 a n, senza elementi ripetuti.

esempio

p = randperm(n,k) restituisce un vettore riga contenente k numeri interi unici selezionati a caso da 1 a n.

esempio

p = randperm(s,___) genera una permutazione casuale di numeri interi dal flusso di numeri casuali s anziché dal flusso globale predefinito. Per creare un flusso, utilizzare RandStream. Specificare s seguito da una qualsiasi combinazione di argomenti nelle sintassi precedenti.

Esempi

comprimi tutto

Generare una permutazione casuale di numeri interi da 1 a 6. L'input a randperm indica il numero intero più grande nell'intervallo di campionamento (il numero intero più piccolo nell'intervallo è 1).

r = randperm(6)
r = 1×6

     6     3     5     1     2     4

Generare una permutazione casuale di quattro numeri interi unici (senza elementi ripetuti) selezionati a caso tra i numeri interi da 1 a 8.

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

     6     4     7     3

Generare un'altra permutazione casuale di quattro numeri interi unici.

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

     8     7     5     4

Salvare lo stato attuale del generatore di numeri casuali e creare una permutazione casuale di numeri interi da 1 a 8.

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

     6     3     7     8     5     1     2     4

Ripristinare lo stato del generatore di numeri casuali su s, quindi creare una nuova permutazione casuale di numeri interi da 1 a 8. La permutazione è uguale a quella precedente.

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

     6     3     7     8     5     1     2     4

È possibile utilizzare la funzione rng per specificare le impostazioni del generatore di numeri casuali.

Argomenti di input

comprimi tutto

Numero di numeri interi nell'intervallo di campionamento, specificato come numero intero positivo. randperm permuta i valori interi da 1 a n inclusi.

Tipi di dati: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Numero di numeri interi selezionati, specificati come numero intero positivo. k deve inoltre essere minore o uguale a n.

Tipi di dati: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Flusso di numeri casuali, specificato come oggetto RandStream.

Esempio s = RandStream('dsfmt19937'); randperm(s,10)

Ulteriori informazioni

comprimi tutto

Suggerimenti

  • La sequenza di numeri prodotta da randperm è determinata dalle impostazioni interne del generatore di numeri pseudocasuali uniforme che è alla base di rand, randi, randn e randperm. Per controllare il generatore di numeri casuali condiviso, utilizzare la funzione rng.

  • Gli array restituiti da randperm contengono permutazioni di numeri interi senza ripetere i valori interi. Questo comportamento viene talvolta definito campionamento senza sostituzione. Se si desidera ripetere i valori, utilizzare la funzione randi.

  • randperm(n) e randperm(n,n) generano entrambi permutazioni dei numeri interi da 1 a n, ma possono generare ordinamenti casuali diversi nelle permutazioni. Per n grandi, randperm(n,n) è più veloce di randperm(n).

Funzionalità estese

espandi tutto

Generazione di codice C/C++
Genera codice C e C++ con MATLAB® Coder™.

Cronologia versioni

Introduzione prima di R2006a