Гамма-случайные числа с единичной шкалой
Y = randg
Y = randg(A)
Y = randg(A,m)
Y = randg(A,m,n,p,...)
Y =
randg(A,[m,n,p,...])
Y = randg(...,classname)
Y = randg(...,'like',X)
Y = randg(...,'like',classname)
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- ... массив или скаляр.
Y = randg(...,classname) возвращает массив случайных значений, выбранных из гамма- распределений заданного класса. classname можно double или single.
Y = randg(...,'like',X) или Y = randg(...,'like',classname) возвращает массив случайных значений, выбранных из гамма- распределений того же класса, что и X или classname, соответственно. X является числовым массивом.
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.3775r2 содержит в точности те же значения, что и r1.
Повторно инициализируйте генератор случайных чисел, используемый rand и randn с seed на основе текущего времени. randg возвращает различные значения каждый раз, когда вы делаете это. Обратите внимание, что обычно это не требуется делать более одного раза за сеанс работы с MATLAB.
rng('shuffle');
randg(2,1,5);[1] Marsaglia, G., and W. W. Tsang. Простой метод генерации гамма- Переменных. Транзакции ACM на математическом программном обеспечении. Том 26, 2000, стр. 363-372.