Почему случайные числа повторяются после запуска?

Все функции случайных чисел, rand, randn, randi, и randperm, нарисуйте значения от генератора общих случайных чисел. Каждый раз, когда вы запускаете MATLAB®генератор сбрасывается в то же состояние. Поэтому команда, такая как rand(2,2) возвращает тот же результат в любое время, когда вы выполняете его сразу после запуска. Кроме того, любой скрипт или функция, которая вызывает функции случайных чисел, возвращает тот же результат при каждом перезапуске.

Если вы хотите избежать повторения тех же массивов случайных чисел при перезапуске MATLAB, выполните команду,

rng('shuffle');
перед вызовом rand, randn, randi, или randperm. Эта команда гарантирует, что вы не будете повторять результат из предыдущего сеанса работы с MATLAB.

Если вы хотите повторить результат, который вы получили в начале сеанса работы с MATLAB, не перезапуская, можно сбросить генератор в состояние запуска в любое время, используя

rng('default');
Когда вы выполняете rng('default'), последующие команды случайных чисел возвращают результаты, которые совпадают с выходами нового сеанса работы с MATLAB. Для примера,
rng('default');
A = rand(2,2)
A =

    0.8147    0.1270
    0.9058    0.9134
Значения в A соответствовать выходу rand(2,2) при перезапуске MATLAB.

См. также