https://github.com/clugen/MOCluGen
Multidimensional cluster generation in MATLAB/Octave
https://github.com/clugen/MOCluGen
gnu-octave gnu-octave-toolbox matlab matlab-toolbox multidimensional-clusters multidimensional-data octave octave-toolbox synthetic-clusters synthetic-data-generator synthetic-dataset-generation
Last synced: 18 days ago
JSON representation
Multidimensional cluster generation in MATLAB/Octave
- Host: GitHub
- URL: https://github.com/clugen/MOCluGen
- Owner: clugen
- License: mit
- Created: 2020-08-20T15:16:42.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2024-08-05T19:08:09.000Z (over 1 year ago)
- Last Synced: 2025-09-05T06:43:38.491Z (3 months ago)
- Topics: gnu-octave, gnu-octave-toolbox, matlab, matlab-toolbox, multidimensional-clusters, multidimensional-data, octave, octave-toolbox, synthetic-clusters, synthetic-data-generator, synthetic-dataset-generation
- Language: MATLAB
- Homepage: https://clugen.github.io/MOCluGen/
- Size: 11.3 MB
- Stars: 5
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Citation: CITATION.cff
Awesome Lists containing this project
- awesome-MATLAB - MOCluGen - Multidimensional cluster generation in MATLAB/Octave. (Miscellaneous Free Toolboxes)
README
[](https://github.com/clugen/MOCluGen/actions/workflows/tests.yml)
[](https://codecov.io/gh/clugen/MOCluGen)
[](https://clugen.github.io/MOCluGen/)
[](https://tldrlegal.com/license/mit-license)
[](https://www.mathworks.com/matlabcentral/fileexchange/123960-moclugen)
[](https://matlab.mathworks.com/open/github/v1?repo=clugen/MOCluGen&file=docs/live_example.mlx)
# MOCluGen
## Summary
**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](https://clugen.github.io/MOCluGen/) and
[examples](https://clugen.github.io/MOCluGen/examples/) for more details.
## Install and use
Download the most recent version from the
[releases](https://github.com/clugen/MOCluGen/releases/latest) page or clone the
development version with following command:
```text
$ 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:
```matlab
>> startup
```
**MOCluGen** can now be used, e.g:
```matlab
>> 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');
```

```matlab
>> 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');
```

## See also
* [pyclugen](https://github.com/clugen/pyclugen/), a Python implementation of
the *clugen* algorithm.
* [CluGen.jl](https://github.com/clugen/CluGen.jl/), a Julia implementation of
the *clugen* algorithm.
* [clugenr](https://github.com/clugen/clugenr/), an R implementation
of the *clugen* algorithm.
## Reference
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.
([arXiv preprint](https://doi.org/10.48550/arXiv.2301.10327))
## License
[MIT License](LICENSE)