Main Content

randperm

Permutación aleatoria de enteros

Descripción

ejemplo

p = randperm(n) devuelve un vector fila que contiene una permutación aleatoria de los enteros de 1 a n sin repetir elementos.

ejemplo

p = randperm(n,k) devuelve un vector fila que contiene k enteros únicos seleccionados aleatoriamente entre 1 y n.

p = randperm(s,___) genera una permutación aleatoria de enteros a partir de una secuencia de números aleatorios s en lugar de a partir de la secuencia global predeterminada. Para crear una secuencia, utilice RandStream. Especifique s seguido de cualquiera de las combinaciones de argumentos de las sintaxis anteriores.

Ejemplos

contraer todo

Genere una permutación aleatoria de los enteros de 1 a 6. La entrada a randperm indica el entero más grande en el intervalo de muestreo (el entero más pequeño en el intervalo es 1).

r = randperm(6)
r = 1×6

     6     3     5     1     2     4

Genere una permutación aleatoria de cuatro enteros únicos (sin repetir elementos) seleccionados aleatoriamente a partir de los enteros entre 1 y 8.

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

     6     4     7     3

Genere otra permutación aleatoria de cuatro enteros únicos.

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

     8     7     5     4

Guarde el estado actual del generador de números aleatorios y cree una permutación aleatoria de los enteros entre 1 y 8.

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

     6     3     7     8     5     1     2     4

Restablezca el estado del generador de números aleatorios a s y, después, cree una nueva permutación aleatoria de los enteros entre 1 y 8. La permutación es la misma que antes.

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

     6     3     7     8     5     1     2     4

Puede utilizar la función rng para especificar los ajustes del generador de números aleatorios.

Argumentos de entrada

contraer todo

Número de enteros en un intervalo de muestra, especificado como entero positivo. randperm permuta valores enteros entre 1 y n incluidos.

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Número de enteros seleccionados, especificado como entero positivo. k también debe ser menor que o igual a n.

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Secuencia de números aleatorios, especificada como objeto RandStream.

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

Sugerencias

  • La secuencia de números que produce randperm viene determinada por los ajustes internos del generador de números pseudoaleatorios uniforme que subyace a rand, randi, randn y randperm. Para controlar ese generador de números aleatorios compartido, utilice la función rng.

  • Los arreglos devueltos por randperm contienen permutación de enteros sin repetir valores enteros. En ocasiones, este comportamiento se conoce como muestreo sin sustitución. Si necesita valores repetidos, utilice la función randi.

  • randperm(n) y randperm(n,n) generan permutaciones de los enteros 1 a n, pero pueden generar distintos órdenes aleatorios en las permutaciones. Para n grandes, la función randperm(n,n) es más rápida que la función randperm(n).

Capacidades ampliadas

Generación de código C/C++
Genere código C y C++ mediante MATLAB® Coder™.

Historial de versiones

Introducido antes de R2006a