exponenta event banner

randg

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

Синтаксис

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около-m матрица случайных значений, выбранных из гамма-распределений с параметрами формы A. A является либо mоколо-m матрица или скаляр. Если A является скаляром, randg использует значение параметра одиночной формы для создания всех элементов Y.

Y = randg(A,m,n,p,...) или Y = randg(A,[m,n,p,...]) возвращает mоколо-nоколо-pоколо-... массив случайных значений, выбранных из гамма-распределений с параметрами формы A. A является либо mоколо-nоколо-pоколо-... массив или скаляр.

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.

Примеры

Пример 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 с начальным значением на основе текущего времени. randg возвращает различные значения при каждом выполнении этого действия. Обратите внимание, что обычно нет необходимости делать это более одного раза за сеанс MATLAB.

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

Ссылки

[1] Марсалья, Г. и В. В. Цанг. «Простой метод генерации гамма-переменных». Транзакции ACM на математическом программном обеспечении. Том 26, 2000, стр. 363-372.

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

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.

См. также

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