MOCluGen is a MATLAB/Octave implementation of the clugen algorithm for generating multidimensional clusters with arbitrary distributions. 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 and examples for more details.
Download the most recent version from the releases page or clone the development version with following command:
$ git clone https://github.com/clugen/MOCluGen.git
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');
>> 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');
- 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:
- Fachada, N. & de Andrade, D. (2023). Generating multidimensional clusters with support lines. Knowledge-Based Systems, 277, 110836. https://doi.org/10.1016/j.knosys.2023.110836 (arXiv preprint)