Documentation

This is machine translation

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

Note: This page has been translated by MathWorks. Please click here
To view all translated materals including this page, select Japan from the country navigator on the bottom of this 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,'.')

Was this topic helpful?