randg

Гамма случайные числа с модульной шкалой

Синтаксис

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.

Примеры

Пример 1

Сгенерируйте 100 1 массив значений, чертивших от гамма распределения с параметром формы 3.

r = randg(3,100,1);

Пример 2

Сгенерируйте 100 2 массив значений, чертивших от гамма дистрибутивов с параметрами формы 3 и 2.

A = [ones(100,1)*3,ones(100,1)*2];
r = randg(A,[100,2]);

Пример 3

Чтобы создать восстанавливаемый вывод из randg, сбросьте генератор случайных чисел, используемый rand и randn к его настройкам запуска по умолчанию. Таким образом, randg производит те же случайные числа, как будто вы перезапустили MATLAB.

rng('default')
randg(3,1,5)

ans =

    6.9223    4.3369    1.0505    3.2662   11.3269

Пример 4

Сохраните настройки для генератора случайных чисел, используемого 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.

Пример 5

Повторно инициализируйте генератор случайных чисел, используемый rand и randn с seed на основе текущего времени. randg возвращает различные значения каждый раз, когда вы делаете это. Обратите внимание на то, что обычно не необходимо сделать это несколько раз на сеанс работы с MATLAB.

rng('shuffle');
randg(2,1,5);

Ссылки

[1] Marsaglia, G. и В. В. Цанг. “Простой метод для Генерации Гамма Переменных”. Транзакции ACM на Mathematical Software. Издание 26, 2000, стр 363–372.

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Смотрите также

Представлено до R2006a