A density based clustering algorithm, implemented according to the original paper


Updated 6 Nov 2015

From GitHub

View License on GitHub

A simple DBSCAN implementation of the original paper: "A Density-Based Algorithm for Discovering Clusters in Large Spatial Databases with Noise" -- Martin Ester et.al. DBSCAN is capable of clustering arbitrary shapes with noise.
Since no spatial access method is implemented, the run time complexity will be N^2 rather than N*logN.
An additional demo (demo.m) with spiral synthetic dataset is included. And a stepwise animation of clustering (demo_stepwise) is also provided.
Input: DistMat, Eps, MinPts
DistMat: A N*N distance matrix, the (i,j) element contains the distance from point-i to point-j.
Eps: A scalar value for Epsilon-neighborhood threshold.
MinPts: A scalar value for minimum points in Eps-neighborhood that holds the core-point condition.
Output: Clust
Clust: A N*1 vector describes the cluster membership for each point. 0 is reserved for NOISE.

Cite As

Tianxiao (2023). DBSCAN (https://github.com/captainjtx/DBSCAN), GitHub. Retrieved .

MATLAB Release Compatibility
Created with R2015b
Compatible with any release
Platform Compatibility
Windows macOS Linux
Tags Add Tags

Inspired by: 6 functions for generating artificial datasets

Community Treasure Hunt

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

Start Hunting!

Versions that use the GitHub default branch cannot be downloaded

Version Published Release Notes

Change Title
Modify Description
Modify the summary

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.