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 RandStream com propriedades como Type e Seed.

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))
Saída
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