sorting the outputs of clusters

I applied K-means clustering, and I tried to sort the outputs of each cluster individually. for example, if I got 2 clusters, I want to sort the contents of each cluster, and save the result or the output in a table to reuse it again in another function.
how can I do that?

1 Comment

Stephen23
Stephen23 on 18 Apr 2018
Edited: Stephen23 on 18 Apr 2018
Note that rather than saving data into separate variables it is usually easier and more versatile to split data into something like a cell array: then it will scale easily to a different number of clusters, and makes looping over them trivial. Read more about why here:

Sign in to comment.

Answers (1)

What do you mean "sort". You could save them to different variables. For example, if you main matrix is called X and you have cluster information stored in a vector called idx, and there are two clusters numbered 1 and 2:

X1 = X(idx==1,:);
X2 = X(idx==2,:);

Is this what you mean?

6 Comments

what I mean, after saving the results into different clusters, how can can sort them inside that cluster? add columns values and reorder them decreasingly.
Ah, ok. Try using sort(x,'descend'), where x is a vector of one of your clusters.
Also, consider how you want to sort vis-a-vis the dimensions in your matrix. Like if you have 2 dimensions, you can choose to sort according to one of the dimensions, but obviously not both...
I'm not sure what he means either. Maybe compute the vector distances of each (x,y) point from that point's class centroid and sort (x,y) pairs by distance from centroid???
actually, what I meant is : after clustering, I wanted adds all vectors into one vector in each cluster and then sort that vector.
Add all what vectors into one vector? And is this one vector per cluster or one vector total?
Are you asking to go through each cluster and sort() its centroid location??
Are you asking to go through the original points, separate them according to cluster number, concatenate all of the rows (that are the input values for clustering to work on) for the cluster into one vector and then sort that vector, even though that would mean sorting x, y, z, ... coordinates all together?
Are you assuming that your inputs are scalars for each sample (only one coordinate) and so the sorting of the different columns of coordinates together does not matter because there would only be one column?

Sign in to comment.

Categories

Asked:

on 18 Apr 2018

Commented:

on 19 Apr 2018

Community Treasure Hunt

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

Start Hunting!