% % Copyright (c) 2015, Yarpiz (www.yarpiz.com) % All rights reserved. Please read the "license.txt" for license terms. % % Project Code: YPML110 % Project Title: Implementation of DBSCAN Clustering in MATLAB % Publisher: Yarpiz (www.yarpiz.com) % % Developer: S. Mostapha Kalami Heris (Member of Yarpiz Team) % % Contact Info: sm.kalami@gmail.com, info@yarpiz.com % function [IDX, isnoise]=DBSCAN(X,epsilon,MinPts) C=0; n=size(X,1); IDX=zeros(n,1); D=pdist2(X,X); visited=false(n,1); isnoise=false(n,1); for i=1:n if ~visited(i) visited(i)=true; Neighbors=RegionQuery(i); if numel(Neighbors)=MinPts Neighbors=[Neighbors Neighbors2]; %#ok end end if IDX(j)==0 IDX(j)=C; end k = k + 1; if k > numel(Neighbors) break; end end end function Neighbors=RegionQuery(i) Neighbors=find(D(i,:)<=epsilon); end end