# Documentation

### This is machine translation

Translated by
Mouseover text to see original. Click the button below to return to the English verison of the page.

# random

Class: gmdistribution

Random numbers from Gaussian mixture distribution

## Syntax

```y = random(obj) Y = random(obj,n) [Y,idx] = random(obj,n) ```

## Description

`y = random(obj)` generates a 1-by-d vector `y` drawn at random from the d-dimensional Gaussian mixture distribution defined by `obj`. `obj` is an object created by `gmdistribution` or `fitgmdist`.

`Y = random(obj,n)` generates an `n`-by-d matrix `Y` of `n` d-dimensional random samples.

`[Y,idx] = random(obj,n)` also returns an `n`-by-1 vector `idx`, where `idx(I)` is the index of the component used to generate `Y(I,:)`.

## Examples

expand all

Create a `gmdistribution` object defining a two-component mixture of bivariate Gaussian distributions.

```MU = [1 2;-3 -5]; SIGMA = cat(3,[2 0;0 .5],[1 0;0 1]); p = ones(1,2)/2; obj = gmdistribution(MU,SIGMA,p); ezcontour(@(x,y)pdf(obj,[x y]),[-10 10],[-10 10]) hold on ```

Generate 1000 random values.

```rng(1); % For reproducibility Y = random(obj,1000); scatter(Y(:,1),Y(:,2),10,'.') ```