RandStream
Objeto que guarda um fluxo independente de números aleatórios.
Categoria: Mathematics > Random Number Generation
Sintaxe
s = RandStream(type)
Cria um fluxo com o gerador indicado por type.
s = RandStream(type, 'Seed', seed)
Cria um fluxo inicializado com uma semente dada.
rand(s, ___), randn(s, ___), randi(s, ___), randperm(s, ___)
Sorteiam de s em vez do fluxo global.
Descrição
Um fluxo é um gerador com estado próprio. Fluxos permitem que partes diferentes de um programa sorteiem números sem se atrapalhar: valores tirados de um fluxo não alteram o que outro produz, e dois fluxos criados com a mesma semente geram os mesmos números.
O fluxo global usado por rand, randn, randi e randperm comuns é também um RandStream, acessível por RandStream.getGlobalStream.
Argumentos de entrada
type- Nome do gerador. O MatLivre aceita
'mt19937ar'(também'twister'). 'Seed'- Inteiro não negativo, ou
'shuffle'/'default'para uma semente arbitrária ou a padrão.
Argumentos de saída
s- Um handle
RandStreamcom propriedades comoTypeeSeed.
Exemplo
Um fluxo privado
s = RandStream('mt19937ar', 'Seed', 1);
rand(s, 1, 3)
s.Type
s2 = RandStream('mt19937ar', 'Seed', 1);
isequal(rand(s2, 1, 3), rand(RandStream('mt19937ar', 'Seed', 1), 1, 3))
ans = 1×3
0.4170 0.7203 0.0001
ans = 'mt19937ar'
ans = logical
1
Observações
Só o gerador Mersenne Twister está disponível. Outros tipos, como 'threefry' ou 'mrg32k3a', geram um erro. A propriedade State não é exposta.
Veja também
RandStream.create RandStream.getGlobalStream rng reset (RandStream) rand