rng
Controlar el generador de números aleatorios
Descripción
rng("default")
inicializa el generador de números aleatorios de MATLAB® usando la semilla y algoritmo predeterminados. El valor predeterminado es el generador Mersenne Twister con la semilla 0. Para obtener más información sobre cómo cambiar la configuración predeterminada y la reproducibilidad, consulte Configuración predeterminada del generador de números aleatorios y Reproducibilidad del generador de números aleatorios.
La función rng
controla la secuencia global, que determina cómo las funciones rand
, randi
, randn
y randperm
generan una secuencia de números aleatorios. Para crear una o más secuencias independientes de la secuencia global, consulte las funciones RandStream
y RandStream.create
.
rng(
establece la semilla del generador de números aleatorios utilizando el algoritmo del generador actual.seed
)
Especifique
seed
como un número entero no negativo, comorng(1)
, para inicializar el generador de números aleatorios con esa semilla.Especifique
seed
como"shuffle"
para inicializar la semilla del generador según la hora actual.
rng(
especifica el algoritmo para el generador de números aleatorios que se desea utilizar con una semilla de 0. Esta sintaxis equivale a generator
)rng(0,generator)
. (desde R2023b)
rng(
inicializa el generador basándose en la configuración incluida en una estructura s
)s
con los campos Type
, Seed
y State
. La estructura s
debe ser una estructura devuelta por una llamada anterior a s = rng
o s = rng(__)
.
devuelve la configuración del generador de números aleatorios actual en una estructura t
= rngt
con los campos Type
, Seed
y State
.
devuelve la configuración del generador de números aleatorios actual en una estructura t
= rng(___)t
antes de cambiar la configuración usando los argumentos especificados. Puede especificar el argumento de salida con cualquiera de las combinaciones de argumentos de entrada de las sintaxis anteriores.
Ejemplos
Argumentos de entrada
Más acerca de
Sugerencias
Cuando realice procesamiento paralelo, no utilice
rng("shuffle")
para establecer la secuencia de números aleatorios en distintos workers para secuencias independientes, porque establece la semilla del generador de números aleatorios basándose en la hora actual. La funciónrng
usa la misma semilla cuando el comando se envía a varios workers de forma simultánea, por ejemplo, dentro de un trabajoparfor
. Para secuencias independientes en los workers, utilice el comportamiento predeterminado o considere utilizar una subsecuencia única en cada worker usandoRandStream
.Cuando lleva a cabo un procesamiento paralelo, los generadores de números aleatorios predeterminados en el cliente de MATLAB y en los workers de MATLAB son diferentes. De forma predeterminada, el cliente de MATLAB utiliza el generador Mersenne Twister con la semilla 0 y los workers de MATLAB utilizan el generador Threefry 4x64 con 20 rondas con la semilla 0. Cambiar la configuración predeterminada del generador en las preferencias de MATLAB solo afecta al comportamiento predeterminado del cliente y no al de los workers paralelos. Si necesita generar la misma secuencia aleatoria de números en el cliente y en los workers, puede utilizar
rng
con el mismo algoritmo generador y semilla (o considere utilizarRandStream
con el mismo algoritmo generador, semilla y algoritmo normal de transformación). Para obtener más información, consulte Control Random Number Streams on Workers (Parallel Computing Toolbox).Para utilizar
rng
en lugar de las funcionesrand
orandn
con las entradas"seed"
,"state"
o"twister"
, consulte Sustituir sintaxis no recomendadas de rand y randn.