image thumbnail

Gaussian Mixture Model (GMM) - Gaussian Mixture Regression (GMR)

version (39.9 KB) by Sylvain Calinon
Encoding of data in Gaussian Mixture Model and retrieval through Gaussian Mixture Regression


Updated 24 Jul 2009

View License

GMM-GMR is a set of Matlab functions to train a Gaussian Mixture Model (GMM) and retrieve generalized data through Gaussian Mixture Regression (GMR). It allows to encode efficiently any dataset in Gaussian Mixture Model (GMM) through the use of an Expectation-Maximization (EM) iterative learning algorithms. By using this model, Gaussian Mixture Regression (GMR) can then be used to retrieve partial output data by specifying the desired inputs. It then acts as a generalization process that computes conditional probability with respect to partially observed data.

A sample is provided to load a dataset containing several trajectory data [t,x] where t is a temporal value and x is a position in 3D. The joint probability p(t,x) is then encoded in GMM, and GMR is used to retrieve p(x|t), namely the expected position at each time step. This is used to retrieve a smooth generalized version of the trajectories provided.

The source codes are implementations of the algorithms described in the book "Robot Programming by Demonstration: A Probabilistic Approach", EPFL/CRC Press. More information on

Cite As

Sylvain Calinon (2021). Gaussian Mixture Model (GMM) - Gaussian Mixture Regression (GMR) (, MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2007b
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!