Accelerating the pace of engineering and science

• Trials

# mvnrnd

Multivariate normal random numbers

## Syntax

R = mvnrnd(MU,SIGMA)
r = mvnrnd(MU,SIGMA,cases)

## Description

R = mvnrnd(MU,SIGMA) returns an n-by-d matrix R of random vectors chosen from the multivariate normal distribution with mean MU, and covariance SIGMA. MU is a vector or n-by-d matrix, and mvnrnd generates each row of R using the corresponding row of mu. SIGMA is a d-by-d symmetric positive semi-definite matrix, or a d-by-d-by-n array. If SIGMA is an array, mvnrnd generates each row of R using the corresponding page of SIGMA, i.e., mvnrnd computes R(i,:) using MU(i,:) and SIGMA(:,:,i). If the covariance matrix is diagonal, containing variances along the diagonal and zero covariances off the diagonal, SIGMA may also be specified as a 1-by-d vector or a 1-by-d-by-n array, containing just the diagonal. If MU is a 1-by-d vector, mvnrnd replicates it to match the trailing dimension of SIGMA.

r = mvnrnd(MU,SIGMA,cases) returns a cases-by-d matrix R of random vectors chosen from the multivariate normal distribution with a common 1-by-d mean vector MU, and a common d-by-d covariance matrix SIGMA.

## Examples

expand all

### Generate Multivariate Normal Random Numbers

Generate random numbers from a multivariate normal distribution with paramters mu = [2 3] and SIGMA = [1 1.5; 1.5 3].

```mu = [2 3];
SIGMA = [1 1.5; 1.5 3];
rng('default');  % For reproducibility
r = mvnrnd(mu,SIGMA,100);
```

Plot the random numbers.

```figure;
plot(r(:,1),r(:,2),'+')
```