Управление генерацией случайных чисел
Использовать 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)