Гамма случайные числа с модульной шкалой
Y = randg
Y = randg(A)
Y = randg(A,m)
Y = randg(A,m,n,p,...)
Y =
randg(A,[m,n,p,...])
Y = randg
возвращает скалярное случайное значение, выбранное из гамма распределения с модульной шкалой и формой.
Y = randg(A)
возвращает матрицу случайных значений, выбранных из гамма дистрибутивов с модульной шкалой. Y
одного размера как A
, и randg
генерирует каждый элемент Y
с помощью параметра формы, равного соответствующему элементу A
.
Y = randg(A,m)
возвращает m
-by-m
матрица случайных значений, выбранных из гамма дистрибутивов с параметрами формы A
. A
является или m
-by-m
матрица или скаляр. Если A
является скаляром, использование randg
что одно значение параметров формы, чтобы сгенерировать все элементы Y
.
Y = randg(A,m,n,p,...)
или Y =
randg(A,[m,n,p,...])
возвращает m
-by-n-by-p-by-
...
массив случайных значений, выбранных из гамма дистрибутивов с параметрами формы A
. A
является или m
-by-n-by-p-by-
...
массив или скаляр.
randg
производит псевдослучайные числа с помощью функций MATLAB® rand
и randn
. Сгенерированная последовательность чисел определяется настройками универсального генератора случайных чисел, который лежит в основе rand
и randn
. Управляйте тем разделяемым генератором случайных чисел с помощью rng
. См. документацию rng
для получения дополнительной информации.
Чтобы сгенерировать гамма случайные числа и задать обоих шкала и параметры формы, необходимо вызвать gamrnd
.
Сгенерируйте 100 1 массив значений, чертивших от гамма распределения с параметром формы 3.
r = randg(3,100,1);
Сгенерируйте 100 2 массив значений, чертивших от гамма дистрибутивов с параметрами формы 3 и 2.
A = [ones(100,1)*3,ones(100,1)*2]; r = randg(A,[100,2]);
Чтобы создать восстанавливаемый вывод из randg
, сбросьте генератор случайных чисел, используемый rand
и randn
к его настройкам запуска по умолчанию. Таким образом, randg
производит те же случайные числа, как будто вы перезапустили MATLAB.
rng('default') randg(3,1,5) ans = 6.9223 4.3369 1.0505 3.2662 11.3269
Сохраните настройки для генератора случайных чисел, используемого rand
и randn
, сгенерируйте 5 значений от randg
, восстановите настройки и повторите те значения.
s = rng; % Obtain the current state of the random stream r1 = randg(10,1,5) r1 = 9.4719 9.0433 15.0774 14.7763 6.3775 rng(s); % Reset the stream to the previous state r2 = randg(10,1,5) r2 = 9.4719 9.0433 15.0774 14.7763 6.3775
r2
содержит точно те же значения как r1
.
Повторно инициализируйте генератор случайных чисел, используемый rand
и randn
с seed на основе текущего времени. randg
возвращает различные значения каждый раз, когда вы делаете это. Обратите внимание на то, что обычно не необходимо сделать это несколько раз на сеанс работы с MATLAB.
rng('shuffle'); randg(2,1,5);
[1] Marsaglia, G. и В. В. Цанг. “Простой метод для Генерации Гамма Переменных”. Транзакции ACM на Mathematical Software. Издание 26, 2000, стр 363–372.