Управление генерацией случайных чисел
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('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
прежде, чем изменить настройки.
Сохраните текущие настройки генератора в 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
Используйте устаревший генератор.
sprev = rng(0,'v5uniform') sprev = Type: 'twister' Seed: 0 State: [625x1 uint32] x = rand x = 0.9501
Восстановите предыдущие настройки путем вызова rng
:
rng(sprev)