Main Content

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.

Generar números aleatorios que sean diferentes

Este ejemplo muestra cómo evitar repetir los mismos arreglos de números aleatorios al reiniciar MATLAB®. Esta técnica es útil cuando quiere combinar los resultados de los mismos comandos de números aleatorios ejecutados en distintas sesiones de MATLAB.

Todas las funciones de números aleatorios, rand, randn, randi y randperm, extraen valores de un generador de números aleatorios compartido. Cada vez que inicie MATLAB, el generador se restablece en el mismo estado. Así, un comando como rand(2,2) devuelve el mismo resultado cada vez que lo ejecute justo después del inicio. Además, cualquier script o función que llame a las funciones de números aleatorios devuelve el mismo resultado siempre que reinicie.

Una forma de obtener números aleatorios diferentes es iniciar el generador con una semilla diferente cada vez. Hacerlo así le asegura que no repite resultados de una sesión anterior.

Ejecute el comando rng('shuffle') cuando esté en su sesión de MATLAB antes de llamar a ninguna de las funciones de números aleatorios.

rng('shuffle')

Puede ejecutar este comando en una ventana de comandos de MATLAB o puede añadirlo a su archivo de inicio, que es un script especial que MATLAB ejecuta cada vez que reinicia.

Ahora, ejecute un comando de número aleatorio.

A = rand(2,2);

Cada vez que llama a rng('shuffle'), vuelve a establecer una semilla diferente en el generador según la hora actual.

Alternativamente, especifique semillas diferentes de forma explícita. Por ejemplo:

rng(1);
A = rand(2,2);
rng(2);
B = rand(2,2);

Los arreglos A y B son diferentes porque el generador se ha iniciado con una semilla diferente antes de cada llamada a la función rand.

Nota

Volver a alimentar el generador con frecuencia no mejora las propiedades estadísticas de la salida y no hace que sea más aleatoria en ningún sentido real. Volver a alimentar puede ser útil al reiniciar MATLAB o antes de ejecutar un gran cálculo con números aleatorios. Sin embargo, volver a alimentar el generador con demasiada frecuencia en una sesión no es una buena idea porque las propiedades estadísticas de los números aleatorios podrían verse negativamente afectadas.

Consulte también

Temas relacionados