Extract clusters info from dendrogram as a matrix

9 次查看(过去 30 天)
Hello,
Wondering if somebody could guide me here...
I do have data from instruments at different locations (Latitude and Longitude) and depths, and I need to cluster these based on their proximity, and I can do that fine, but I also need to extract the info from the clusters for another analysis.
This is a very short example of my data:
ID Depth Lat Lon
A1 0.33 -14.28 -170.56
A2 2 -14.24 -169.42
A3 15 -14.33 -170.83
A4 14.95 -11.06 -171.09
A5 17 -14.28 -170.72
A6 14.8 -0.38 -160.02
A7 1.5 5.87 -162.05
A8 0.33 -0.38 -160.02
A9 12.8 -0.38 -160.02
A10 2.8 -0.38 -160.02
A11 7 -0.38 -160.02
A12 9.8 -0.38 -160.02
A13 10 -0.38 -160.02
This is the result of using the function dendrogram, with a line at 150 (x-axis), which represent the cluster max cut that I want to apply based on the data I have. </matlabcentral/answers/uploaded_files/100362/test.jpg>
What I need is to extract the clusters in a way similar to this:
Cluster ID Depth Lat Lon
1 A7 1.5 5.87 -162.05
2 A8 0.33 -0.38 -160.02
2 A11 7 -0.38 -160.02
3 A12 9.8 -0.38 -160.02
3 A13 10 -0.38 -160.02
3 A9 12.8 -0.38 -160.02
3 A6 14.8 -0.38 -160.02
4 A4 14.95 -11.06 -171.09
5 A3 15 -14.33 -170.83
6 A5 17 -14.28 -170.72
7 A1 0.33 -14.28 -170.56
8 A2 2 -14.24 -169.42
Thank you for your suggestions and/or directions to an existent answer, if that is the case.

采纳的回答

Kris Fedorenko
Kris Fedorenko 2018-1-8
Hello Robert,
I am unable to see the image, but sounds like you might find functions like cluster or clusterdata useful.
Are you creating a dendrogram from a binary tree, specified as an (M – 1)-by-3 matrix (e.g. generated with the linkage function)? Then you can just pass on the same matrix to the "cluster" function.
  2 个评论
Kris Fedorenko
Kris Fedorenko 2018-1-12
To expand on that short answer, linkage produces a binary tree of hierarchical clusters. To extract cluster labels from that, you need to choose which level of the tree you want to be looking at. That's why "cluster" and "clusterdata" require you to provide a "cutoff" value. This "cutoff" value can be expressed either in terms of distance (same distance metric as used by "linkage") or in terms of the inconsistency coefficient.
To deal with distances in terms of latitude and longitude you might consider taking a look at the distance function from the Mapping Toolbox. Depending on you application, you might want to specify a custom distance metric to supply for the "linkage" function.
Robert
Robert 2018-1-12
Thank you so much Kris, for all of your help with this question and follow-ups. I really appreciated it!

请先登录,再进行评论。

更多回答(0 个)

Community Treasure Hunt

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

Start Hunting!

Translated by