tallrng

Управляйте генерацией случайных чисел для длинные массивы

Описание

tallrng('default') помещает настройки генератора случайных чисел, используемого в вычислениях длинный массив, в значения по умолчанию. Произведенные случайные числа те же, что и если вы перезапустите MATLAB®.

tallrng('shuffle') устанавливает seed генератора случайных чисел на основе текущего времени. Используйте этот синтаксис, когда вы хотите различные последовательности случайных чисел каждый раз, когда они генерируются.

tallrng(seed) устанавливает отправную точку или seed генератора случайных чисел. Используйте этот синтаксис, когда вы хотите создать предсказуемые последовательности чисел.

tallrng(seed,generator) или tallrng('shuffle',generator) выбирает генератор случайных чисел. Для примера, tallrng(0,'mlfg6331_64').

пример

state = tallrng возвращает текущее состояние генератора случайных чисел как структуры. Используйте структуру, чтобы восстановить генератор случайных чисел в захваченном состоянии в последующее время с tallrng(state).

пример

tallrng(state) восстанавливает состояние генератора случайных чисел с помощью настроек, ранее захваченных с state = tallrng.

Примеры

свернуть все

Захватите настройки генератора, сгенерируйте массив случайных чисел, а затем восстановите генератор в начальных настройках, чтобы создать предсказуемые массивы случайных чисел.

Сохраните текущее состояние генератора случайных чисел.

state = tallrng
state = struct with fields:
           Type: 'threefry'
           Seed: 0
    StreamIndex: 1
      Substream: 1

Создайте длинный массив случайных чисел с помощью arrayfun.

t = tall(zeros(10,1));
n1 = arrayfun(@(x) x+randn, t)
n1 =

  10x1 tall array

    ?
    ?
    ?
    ?
    ?
    ?
    ?
    ?
    :
    :

Восстановите генератор в предыдущем состоянии и перегенерируйте массив случайных чисел. Эти два массива n1 и n2 равны.

tallrng(state)
n2 = arrayfun(@(x) x+randn, t)
n2 =

  10x1 tall array

    ?
    ?
    ?
    ?
    ?
    ?
    ?
    ?
    :
    :

Входные параметры

свернуть все

Случайное число seed, заданное как неотрицательное целое число. Этот seed задает начальную точку для алгоритма, чтобы сгенерировать случайные числа. Задайте seed, когда хотите получить воспроизводимые результаты.

Максимальное значение seed 232-1.

Пример: tallrng(3)

Генератор случайных чисел, заданный как один из генераторов случайных чисел в этой таблице. Вы можете задать регулярное или удобное имя.

ИмяИмя удобстваОписание
'threefry4x64_20' (по умолчанию)'threefry'Трехфазный генератор 4x64 с 20 патронами
'mrg32k3a' 'combRecursive'

Объединенный множественный рекурсивный генератор

'mlfg6331_64''multFibonacci'

Мультипликативный отставший генератор Фибоначчи

'philox4x32_10''philox'Генератор Philox 4x32 с 10 патронами

tallrng поддерживает генераторы случайных чисел, которые имеют поддержку нескольких потоков и субпотоков. Полный список доступных генераторов в MATLAB см. в разделе Создание и управление потоком случайных чисел.

Пример: tallrng(0,'mlfg6331_64')

Предыдущее состояние генератора случайных чисел, заданное как структура, ранее созданная с использованием state = tallrng.

Пример: state = tallrng захватывает текущее состояние генератора случайных чисел и tallrng(state) восстанавливает эти параметры генератора.

Типы данных: struct

Выходные аргументы

свернуть все

Состояние генератора случайных чисел, возвращаемое как структура с этими полями.

ОбластьОписаниеПример значения
TypeТип генератора случайных чисел'threefry'
SeedЧисло, указывающее начальную точку для алгоритма (для повторяемости)0
StreamIndexИндекс, указывающий на связанный глобальный поток 1
SubstreamИндекс, указывающий на связанный субпоток1

Пример: state = tallrng захватывает текущее состояние генератора случайных чисел и tallrng(state) восстанавливает эти параметры генератора.

Типы данных: struct

Совет

  • Если у вас есть Statistics and Machine Learning Toolbox™, то tallrng управляет случайными числами, которые функционируют как datasample, cvpartition, и TreeBagger сгенерировать во время вычислений длинный массив.

Вопросы совместимости

расширить все

Поведение изменено в R2019a

См. также

|

Введенный в R2017b