RandStream.create

Создайте потоки случайных чисел

Класс

RandStream

Синтаксис

[s1,s2,...] = RandStream.create('gentype','NumStreams',n)
s = RandStream.create('gentype')
[ ... ] = RandStream.create('gentype', Name, Value,...)

Описание

[s1,s2,...] = RandStream.create('gentype','NumStreams',n) создает n потоки случайных чисел, которые используют универсальный алгоритм генератора псевдослучайного числа, заданный gentype. Потоки независимы в псевдослучайном смысле. Потоки не обязательно независимы от потоков, созданных в других случаях. RandStream.list возвращает все возможные значения для gentype или смотрите Выбор Random Number Generator для получения дополнительной информации об алгоритмах генератора.

Примечание

Несколько потоков не поддержаны всеми типами генератора. Используйте любого мультипликативный изолированный генератор Фибоначчи (mlfg6331_64) или объединенное несколько рекурсивный генератор (mrg32k3a) создать несколько потоков.

s = RandStream.create('gentype') создает один случайный поток. RandStream конструктор является более краткой альтернативой, когда необходимо создать единый поток.

[ ... ] = RandStream.create('gentype', Name, Value,...) позволяет вам задавать дополнительное Имя, пары Значения, чтобы управлять созданием потока. Параметры:

NumStreamsОбщее количество потоков этого типа, который будет создан через сеансы или лаборатории. Значение по умолчанию равняется 1.
StreamIndicesПотоковые индексы, которые должны быть созданы в этом вызове. Значением по умолчанию является 1:N, где N значение, данное с 'NumStreams' параметр.
SeedНеотрицательное скалярное целое число, с которым можно инициализировать все потоки. Значение по умолчанию 0. Seed должны быть целым числом между 0 и 232 − 1 или 'shuffle' создать seed на основе текущего времени.
NormalTransformАлгоритм преобразования используется randn(S, ...) сгенерировать нормальные псевдослучайные значения. Опциями является 'Ziggurat'полярный, или 'Inversion'.
CellOutputЛогический флаг, указывающий, возвратить ли потоковые объекты как элементы массива ячеек. Значение по умолчанию является ложным.

Как правило, вы вызываете RandStream.create однажды, чтобы создать несколько независимых потоков в одной передаче. В качестве альтернативы можно создать каждый поток от отдельных вызовов до RandStream.create, но необходимо задать соответствующие значения для gentype, 'NumStreams', 'Seed', и 'StreamIndices' гарантировать их независимость:

  • Задайте то же множество значений для gentype, 'NumStreams', и 'Seed' в каждом случае.

  • Задайте различное значение для 'StreamIndices' это между 1 и 'NumStreams' значение в каждом случае.

Примеры

Создайте три независимых потока.

[s1,s2,s3] = RandStream.create('mrg32k3a','NumStreams',3);
r1 = rand(s1,100000,1); 
r2 = rand(s2,100000,1); 
r3 = rand(s3,100000,1);
corrcoef([r1,r2,r3])

Создайте один поток из набора трех независимых потоков и определяйте его как глобальный поток.

s2 = RandStream.create('mrg32k3a','NumStreams',3,'StreamIndices',2);
RandStream.setGlobalStream(s2);

Смотрите также

|

Для просмотра документации необходимо авторизоваться на сайте