Поток случайных чисел
s = RandStream('gentype')
s = RandStream('gentype',Name,Value)
s = RandStream('gentype') создает поток случайных чисел, который использует универсальный алгоритм генератора псевдослучайного числа, заданный gentypeRandStream.list возвращает все возможные значения для gentype, или смотрите Выбор Random Number Generator для получения дополнительной информации об алгоритмах генератора.
s = RandStream('gentype',Name,Value) позволяет вам задавать один или несколько дополнительный Name,Value пары, чтобы управлять созданием потока.
Если вы создали случайное, можно использовать RandStream.setGlobalStream сделать его глобальным потоком, так, чтобы функции randrandi, и randn чертите значения от него.
Параметры для RandStream :
| Параметр | Описание |
|---|---|
Seed | Неотрицательное скалярное целое число, с которым можно инициализировать все потоки. Seed должны быть целым числом между 0 и 232 − 1 или 'shuffle' создать seed на основе текущего времени. Значение по умолчанию 0. |
NormalTransform | Алгоритм преобразования используется randn(s, ...) сгенерировать нормальные псевдослучайные значения. Возможными значениями является 'Ziggurat'полярный, или 'Inversion'. |
Создайте поток случайных чисел, сделайте его глобальным потоком, и сохраните и восстановите его состояние, чтобы воспроизвести выход randn:
s = RandStream('mrg32k3a');
RandStream.setGlobalStream(s);
savedState = s.State;
z1 = randn(1,5)
z1 =
-0.1894 -1.4426 -0.3592 0.8883 -0.4337
s.State = savedState;
z2 = randn(1,5)
z2 =
-0.1894 -1.4426 -0.3592 0.8883 -0.4337
z2 содержит точно те же значения как z1.
Возвратите randrandi, и randn к их настройкам запуска по умолчанию:
s = RandStream('mt19937ar','Seed',0)
RandStream.setGlobalStream(s);Замените текущий глобальный поток случайных чисел на поток, seed которого основан на текущем времени, таким образом, randrandi, и randn возвратит различные значения на различных сеансах MATLAB®. Обычно не желательно сделать это несколько раз на сеанс работы с MATLAB, когда это может влиять на статистические свойства случайных чисел, которые производит MATLAB:
s = RandStream('mt19937ar','Seed','shuffle');
RandStream.setGlobalStream(s);Потоки, созданные с помощью RandStream не может быть независимым друг от друга. Используйте RandStream.create создать несколько потоков, которые независимы.
RandStream | RandStream.create | RandStream.getGlobalStream | RandStream.list | RandStream.rand | RandStream.randi | RandStream.randn | RandStream.setGlobalStream | rng