Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Genere números aleatorios que sean repetibles

Especifique el SEED

Este ejemplo muestra cómo repetir matrices de números aleatorios especificando primero la semilla. Cada vez que inicialice el generador utilizando la misma semilla, siempre obtendrá el mismo resultado.

En primer lugar, inicialice el generador de números aleatorios para que los resultados de este ejemplo sean repetibles.

rng('default');

Ahora, inicialice el generador usando una semilla de.1

rng(1);

A continuación, cree una matriz de números aleatorios.

A = rand(3,3)
A =      0.4170    0.3023    0.1863     0.7203    0.1468    0.3456     0.0001    0.0923    0.3968

Repite el mismo comando.

A = rand(3,3)
A =      0.5388    0.2045    0.6705     0.4192    0.8781    0.4173     0.6852    0.0274    0.5587

La primera llamada a cambiar el estado del generador, por lo que el segundo resultado es diferente.rand

Ahora, reinicializar el generador usando la misma semilla que antes. A continuación, reproduzca la primera matriz,.A

rng(1); A = rand(3,3)
A =      0.4170    0.3023    0.1863     0.7203    0.1468    0.3456     0.0001    0.0923    0.3968

En algunas situaciones, el establecimiento de la semilla por sí solo no garantizará los mismos resultados. Esto se debe a que el generador al que se dibujan las funciones de números aleatorios puede ser diferente de lo que espera cuando se ejecuta el código. Para la repetibilidad a largo plazo, especifique la semilla y el tipo de generador juntos.

Por ejemplo, el código siguiente establece la inicialización y el generador en Mersenne Twister.1

rng(1,'twister');

Establezca la inicialización y el tipo de generador juntos cuando desee:

  • Asegúrese de que el comportamiento del código que escribe hoy devuelva los mismos resultados al ejecutar ese código en una versión futura.MATLAB®

  • Asegúrese de que el comportamiento del código que escribió en una versión anterior devuelva los mismos resultados con la versión actual.MATLAB

  • Repite números aleatorios en el código después de ejecutar el código de número aleatorio de otra persona.

Consulte la página de referencia para obtener una lista de generadores disponibles.rng

Guardar y restaurar la configuración del generador

Este ejemplo muestra cómo crear matrices repetibles de números aleatorios guardando y restaurando la configuración del generador. La razón más común para guardar y restaurar la configuración del generador es reproducir los números aleatorios generados en un punto específico en un algoritmo o iteración. Por ejemplo, puede utilizar la configuración del generador como ayuda en la depuración.

En primer lugar, inicialice el generador de números aleatorios para que los resultados de este ejemplo sean repetibles.

rng(1,'twister');

Guarde la configuración del generador en una estructura.s

s = rng;

Cree una matriz de valores enteros aleatorios entre 1 y 10.

A = randi(10,3,3)
A = 3×3

     5     4     2
     8     2     4
     1     1     4

Repite el mismo comando.

A = randi(10,3,3)
A = 3×3

     6     3     7
     5     9     5
     7     1     6

La primera llamada a cambiar el estado del generador, por lo que el segundo resultado es diferente.randi

Ahora, devuelva el generador al estado original almacenado y reproduzca la primera matriz.sA

rng(s); A = randi(10,3,3)
A = 3×3

     5     4     2
     8     2     4
     1     1     4

A diferencia de la reinicialización, que reinicia el generador, este enfoque le permite guardar y restaurar la configuración del generador en cualquier punto.

Consulte también

Ejemplos relacionados

Más acerca de