Multidimensional cluster generation in MATLAB/Octave


Updated 1 Apr 2023

From GitHub

View License on GitHub

codecov docs MIT View MOCluGen on File Exchange



MOCluGen is a MATLAB/Octave implementation of the clugen algorithm for generating multidimensional clusters. Each cluster is supported by a line segment, the position, orientation and length of which guide where the respective points are placed.

See the documentation for more details.

Install and use

Download the most recent version from the releases page or clone the development version with following command:

$ git clone

Open MATLAB or GNU Octave and cd into the project's folder, and run the startup.m script:

>> startup

MOCluGen can now be used, e.g:

>> o = clugen(2, 4, 400, [1 0], pi / 8, [50, 10], 20, 1, 2, 'seed', 123);
>> scatter(o.points(:, 1), o.points(:, 2), 36, o.clusters, 'filled', 'MarkerEdgeColor', 'k');

Example 2D

>> o = clugen(3, 4, 1000, [1 0 0], pi / 8, [20 15 25], 16, 4, 3.5, 'seed', 123);
>> scatter3(o.points(:, 1), o.points(:, 2), o.points(:, 3), 36, o.clusters, 'filled', 'MarkerEdgeColor', 'k');

Example 3D

See also

  • pyclugen, a Python implementation of the clugen algorithm.
  • CluGen.jl, a Julia implementation of the clugen algorithm.
  • clugenr, an R implementation of the clugen algorithm.


If you use this software, please cite the following reference:


MIT License

Cite As

Fachada, Nuno, and Diogo de Andrade. Generating Multidimensional Clusters With Support Lines. arXiv, 2023, doi:10.48550/ARXIV.2301.10327.

View more styles
MATLAB Release Compatibility
Created with R2013a
Compatible with R2013a and later releases
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

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

Start Hunting!
Version Published Release Notes

See release notes for this release on GitHub:


To view or report issues in this GitHub add-on, visit the GitHub Repository.
To view or report issues in this GitHub add-on, visit the GitHub Repository.