rng

Controla a semente e o gerador do fluxo global de números aleatórios.

Categoria: Mathematics > Random Number Generation

Sintaxe

rng(seed)

Semeia o gerador Mersenne Twister com um inteiro não negativo.

rng('default')

Restaura as configurações iniciais: Mersenne Twister, semente 0.

rng('shuffle')

Semeia a partir do horário atual, gerando uma sequência diferente a cada execução.

rng(seed, generator)

Escolhe o gerador, por exemplo 'twister'.

s = rng

Retorna as configurações atuais como struct, para restaurar depois com rng(s).

Descrição

rng define o estado do fluxo global, que é o usado por rand, randn, randi e randperm. Semear com o mesmo valor antes de um cálculo o torna reproduzível: é a primeira linha da maioria dos scripts que usam dados aleatórios.

Para executar um trecho de código e depois voltar ao estado aleatório anterior, guarde s = rng antes e chame rng(s) depois.

Argumentos de entrada

seed
Inteiro não negativo, 'default' ou 'shuffle'.
generator
Nome do gerador: 'twister' (ou 'mt19937ar').
s
Struct com os campos Type, Seed e State, como retornada por rng.

Argumentos de saída

s
As configurações em vigor antes da chamada.

Exemplo

Números reprodutíveis e estado salvo

rng(42);
a = rand;
rng(42);
b = rand;
a == b
s = rng;
x = rand(1, 2);
rng(s);
isequal(x, rand(1, 2))
rng('default');
rand
Saída
ans = logical
   1
ans = logical
   1
ans = 0.8147

Observações

Só o gerador Mersenne Twister ('twister') está disponível. Os valores de rand para uma dada semente coincidem com os do MATLAB; os de randn, randi e randperm podem não coincidir.

Veja também

rand randn randi randperm RandStream