Управление генерацией случайных чисел
rng(seed)rng('shuffle')rng(seed, generator)rng('shuffle',
generator)rng('default')scurr = rngrng(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)