Permutación aleatoria con MATLAB
Este tutorial discutirá la generación de vectores que contienen una permutación aleatoria de números enteros usando la función randperm()
en MATLAB.
Genere vectores que contienen permutación aleatoria de enteros usando la función randperm()
en MATLAB
Podemos usar la función incorporada de MATLAB randperm()
para generar vectores que contienen una permutación aleatoria de números enteros. Podemos definir el número entero más grande en el intervalo de muestreo en la función randperm()
, y el número entero más pequeño en el intervalo de muestreo es uno por defecto.
Por ejemplo, generemos seis enteros entre el rango de 1 a 6 usando la función randperm()
. Vea el código a continuación.
clc
v = randperm(6)
Producción :
v =
3 5 6 1 4 2
La salida cambiará si volvemos a ejecutar este código porque estos valores son aleatorios. Podemos definir el número de números enteros de permutación aleatoria usando el segundo argumento de la función randperm()
.
Solo podemos definir un número menor o igual que el primer argumento porque los números generados son únicos y no se pueden repetir. Si definimos un número mayor que el primer argumento, MATLAB mostrará un error.
Por ejemplo, generemos dos números de permutación aleatorios entre 1 y 6 usando la función randperm()
. Vea el código a continuación.
clc
v = randperm(6,2)
Producción :
v =
1 3
Solo dos números en la salida cambiarán si volvemos a ejecutar el código porque los números generados son aleatorios. También podemos guardar el estado de un generador de números aleatorios usando la función rng
.
El estado guardado anteriormente se puede utilizar para generar la misma secuencia de números enteros. Por ejemplo, generemos dos vectores con la misma secuencia usando las funciones randperm()
y rng
.
Vea el código a continuación.
clc
s = rng;
v1 = randperm(6,2)
rng(s)
v2 = randperm(6,2)
Producción :
v1 =
1 2
v2 =
1 2
En la salida, ambos vectores v1 y v2 contienen los mismos elementos.
Si volvemos a ejecutar el código, la salida cambiará, pero los elementos de ambos vectores permanecerán sin cambios. Si no usamos el estado previamente almacenado, los vectores tendrán diferentes elementos.