Multivariate normal random draws.
Syntax: @rmvnorm(S[, n])
@rmvnormc(S[, n])
@rmvnormi(S[, n])
@rmvnormic(S[, n])
m: (optional) vector
S: sym, matrix
n: (optional) integer,
Return: vector, matrix
Draw random multivariate normals using the
density function.
The multivariate normal density is given by
There are four different forms of the function, corresponding to different ways of specifying
. The forms are distinguished by different suffixes that are applied to the base “@rmvnorm” command and how they change the interpretation of the
S matrix argument:
@rmvnorm | “” | Supply . |
@rmvnormc | “c” | Supply the Cholesky decomposition of . This form is more efficient when performing multiple draws from the same distribution (compute the Cholesky once, but sample many times). |
@rmvnormi | “i” | Supply . This form is more efficient than explicitly inverting to supply . |
@rmvnormic | “ic” | Supply the Cholesky decomposition of . This form combines the efficiencies of the Cholesky and inverse forms. |
If the optional argument n is omitted, the function returns a vector containing a single draw from the distribution. If n is provided, n is the number of rows of the returned matrix, with each row representing a draw from the distribution.
Examples
= @dmvnorm(@identity(3))
returns a random draw from a trivariate normal distribution.
Cross-references