Поток случайных чисел
RandStream создает поток случайных чисел с использованием заданного алгоритма генератора псевдослучайных чисел.
В MATLAB ® можно создавать псевдослучайные числа из одного или нескольких потоков случайных чисел. Самый простой способ генерации массивов случайных чисел - использоватьrand, randi, randn, и randperm функции. Все эти функции основаны на одном и том же потоке равномерно распределенных случайных чисел, известном как глобальный поток. Изменение глобального потока может включать RandStream, но это не обязательно. При создании потока с помощью RandStream, вы можете использовать RandStream.setGlobalStream чтобы сделать его глобальным потоком. Тем не менее, rng функция обеспечивает более простой интерфейс для создания глобального потока, достаточного для большинства сценариев использования.
Также можно использовать RandStream для создания потоков и последующего использования rand, randi, randn, или randperm для генерации случайных чисел из этих потоков. Сгенерированные случайные числа отделены от чисел, полученных из глобального потока или из других потоков. Дополнительные сведения см. в разделе Функции объектов.
Используйте следующие синтаксисы для создания одного потока случайных чисел. Если требуется создать несколько независимых потоков одновременно, используйте RandStream.create функция.
создает поток случайных чисел, который использует алгоритм генератора однородных псевдослучайных чисел, заданный s = RandStream(gentype)gentype.
также управляет свойствами потока, используя один или несколько дополнительных s = RandStream(gentype,Name,Value)Name,Value аргументы пары.
По умолчанию функции генерации случайных чисел, такие как rand, используйте глобальный поток случайных чисел. Чтобы указать другой поток, создайте RandStream и передать его в качестве первого входного аргумента. Например, создайте вектор случайных чисел 4 на 1, используя СИМД-ориентированный быстрый мерсенновский твистер.
s = RandStream('dsfmt19937');
r = rand(s,4,1);Эти функции принимают RandStream объект:
rand | Равномерно распределенные случайные числа | Поддерживаемые синтаксисы, где X = rand(s) X = rand(s,n) X = rand(s,sz1,...,szN) X = rand(s,sz) X = rand(s,typename) rand, randi, и randn. |
randi | Равномерно распределенные псевдослучайные целые числа | |
randn | Обычно распределенные случайные числа | |
randperm | Случайная перестановка целых чисел | Поддерживаемые синтаксисы, где p = randperm(s,n) p = randperm(s,n,k) randperm. |
Другие объектные функции RandStream являются:
RandStream.create | Создание статистически независимых потоков случайных чисел |
RandStream.list | Перечислить алгоритмы генератора случайных чисел |
RandStream.getGlobalStream | Получить текущий глобальный поток случайных чисел |
RandStream.setGlobalStream | Установка глобального потока случайных чисел |
reset | Сброс потока случайных чисел |