This is machine translation

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

Note: This page has been translated by MathWorks. Click here to see
To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

Simulate Data from Gaussian Mixture Model

This example shows how to simulate data from a Gaussian mixture model (GMM) using a fully specified gmdistribution object and the random function.

Create a known, two-component GMM object.

mu = [1 2;-3 -5];
sigma = cat(3,[2 0;0 .5],[1 0;0 1]);
p = ones(1,2)/2;
gm = gmdistribution(mu,sigma,p);

Plot the contour of the pdf of the GMM.

gmPDF = @(x,y)reshape(pdf(gm,[x(:) y(:)]),size(x));
fcontour(gmPDF,[-10 10]);
title('Contour lines of pdf');

Generate 1000 random variates from the GMM.

rng('default'); % For reproducibility
X = random(gm,1000);

Plot the variates with the pdf contours.

hold on
scatter(X(:,1),X(:,2),10,'.') % Scatter plot with points of size 10
title('Contour lines of pdf and Simulated Data');

See Also

| | |

Related Topics