Вы можете просто позвонить rng(mySeed)
, чтобы установить начальное значение для глобального потока (протестировано в Matlab R2011b).Это влияет на функции rand
, randn
и randi
.
На той же странице , на которую Джеймс ссылался на , перечисляется это как рекомендуемая альтернатива различным старым методам (см. В серединеячейка правого столбца таблицы).
Вот пример кода:
format long; % Display numbers with full precision
format compact; % Get rid of blank lines between output
mySeed = 10;
rng(mySeed); % Set the seed
disp(rand([1,3]));
disp(randi(10,[1,10]));
disp(randn([1,3]));
disp(' ');
rng(mySeed); % Set the seed again to duplicate the results
disp(rand([1,3]));
disp(randi(10,[1,10]));
disp(randn([1,3]));
Его вывод:
0.771320643266746 0.020751949359402 0.633648234926275
8 5 3 2 8 2 1 7 10 1
0.060379730526407 0.622213879877005 0.109700311365407
0.771320643266746 0.020751949359402 0.633648234926275
8 5 3 2 8 2 1 7 10 1
0.060379730526407 0.622213879877005 0.109700311365407