Return a matrix with
gamma(a,1)distributed random elements. The arguments are handled the same as the arguments forrand, except for the argument a.This can be used to generate many distributions:
gamma (a, b)fora > -1,b > 0 r = b * randg (a)beta (a, b)fora > -1,b > -1r1 = randg (a, 1) r = r1 / (r1 + randg (b, 1))Erlang (a, n) r = a * randg (n)chisq (df)fordf > 0 r = 2 * randg (df / 2)t(df)for0 < df < inf(use randn if df is infinite) r = randn () / sqrt (2 * randg (df / 2) / df)F (n1, n2)for0 < n1,0 < n2## r1 equals 1 if n1 is infinite r1 = 2 * randg (n1 / 2) / n1 ## r2 equals 1 if n2 is infinite r2 = 2 * randg (n2 / 2) / n2 r = r1 / r2- negative
binomial (n, p)forn > 0,0 < p <= 1 r = randp ((1 - p) / p * randg (n))- non-central
chisq (df, L), fordf >= 0andL > 0- (use chisq if
L = 0)r = randp (L / 2) r(r > 0) = 2 * randg (r(r > 0)) r(df > 0) += 2 * randg (df(df > 0)/2)Dirichlet (a1, ..., ak)r = (randg (a1), ..., randg (ak)) r = r / sum (r)