rng

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

Синтаксис

rng(seed)
rng('shuffle')
rng(seed, generator)
rng('shuffle', generator)
rng('default')
scurr = rng
rng(s)
sprev = rng(...)

Описание

Примечание

Чтобы использовать функцию rng вместо rand или randn с 'seed', 'state' или входные параметры 'twister', видит документацию относительно Замены Нежелательные Синтаксисы rand и randn.

rng(seed) отбирает генератор случайных чисел с помощью неотрицательного целочисленного seed так, чтобы rand, randi и randn произвели предсказуемую последовательность чисел.

rng('shuffle') отбирает генератор случайных чисел на основе текущего времени. Таким образом rand, randi и randn производят различную последовательность чисел после каждого раза, когда вы вызываете rng.

rng(seed, generator) и rng('shuffle', generator) дополнительно задайте тип генератора случайных чисел, используемого rand, randi и randn. Вход generator является одним из:

  • 'twister': Вихрь Мерсенна

  • 'simdTwister': SIMD-ориентированный быстрый Вихрь Мерсенна

  • 'combRecursive': объединенный несколько рекурсивные

  • 'philox': Philox 4x32 генератор с 10 раундами

  • 'threefry': Threefry 4x64 генератор с 20 раундами

  • 'multFibonacci': мультипликативный изолированный Фибоначчи

  • 'v5uniform': универсальный генератор Legacy MATLAB® 5.0

  • 'v5normal': Устаревший MATLAB 5.0 нормальный генератор

  • 'v4': Устаревший генератор MATLAB 4.0

rng('default') помещает настройки генератора случайных чисел, используемого rand, randi и randn к их значениям по умолчанию. Таким образом, те же случайные числа производятся, как будто вы перезапустили MATLAB. Настройки по умолчанию являются Вихрем Мерсенна с seed 0.

scurr = rng возвращает текущие настройки генератора случайных чисел, используемого rand, randi и randn. Настройки возвращены в структуре scurr с полями 'Type', 'Seed' и 'State'.

rng(s) восстанавливает настройки генератора случайных чисел, используемого rand, randi и randn назад к значениям, полученным ранее с командой, таким как s = rng.

sprev = rng(...) возвращает предыдущие настройки генератора случайных чисел, используемого rand, randi и randn прежде, чем изменить настройки.

Примеры

Пример 1 - получает и восстанавливает настройки генератора

Сохраните текущие настройки генератора в s:

s = rng;

Вызовите rand, чтобы сгенерировать вектор случайных значений:

x = rand(1,5)

x =

    0.8147    0.9058    0.1270    0.9134    0.6324

Восстановите исходные настройки генератора путем вызова rng. Сгенерируйте новый набор случайных значений и проверьте, что x и y равны:

rng(s);
y = rand(1,5)

y =

    0.8147    0.9058    0.1270    0.9134    0.6324

Пример 2 - настройки восстановления для устаревшего генератора

Используйте устаревший генератор.

sprev = rng(0,'v5uniform')

sprev = 
     Type: 'twister'
     Seed: 0
    State: [625x1 uint32]

x = rand

x =

    0.9501

Восстановите предыдущие настройки путем вызова rng:

rng(sprev)

Расширенные возможности