I have set of coordinates. I want to make clusters in which every point is within 1.5 distance unit of it's neighbor.
ex of point coordinates:
{{-12.945, 20.6509, 12.5901}, {-13.4452, 20.307, 111.626},
{-12.9731, 22.8458, 12.4215}, {-13.2381, 24.8167, 10.7147},
{-11.3668, 23.3908,11.8499}, {-11.6828, 23.7311, 10.8839},
{-13.3929, 21.1835, 9.86324}, {-11.5016, 21.3324, 10.1392},
{-12.3079, 22.096, 8.57246}, {-12.5268, 20.9679, 10.5444},
{-12.1951, 24.5423, 10.1807}, {-11.8887, 22.3883, 10.0751},
{-14.2529, 20.4808, 9.81084}, {-11.9876, 21.8094, 11.0478},
{-12.3718, 23.6176, 11.8266}, {-11.6179, 20.8324, 11.2154},
{-12.5927, 21.7492, 12.5087}, {-12.1665, 24.6649, 11.2909},
{-12.3854, 21.5571, 9.51876}, {-12.2237, 23.4278, 9.9787}}
what is the quickest way in Mathematica
for this (for large data sets).
I tried this to find all points that are within mentioned distance:
Table[Select[List, EuclideanDistance[List[[i]], #] < 1.5 &], {i, 1, Length[[List]]}]
but now I have troubles to join all sets that have common elements.
{0,0,0}
,{0,0,1}
and{0,0,2}
? I.e. the 2nd point could be clustered with both other, but the 1st not with the 3rd $\endgroup$Gather[data, EuclideanDistance[#1, #2] < 1.5 &]
? $\endgroup$