Using clusterdata and extracting data from it's indexes.
15 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hello,
I have an array of points say A = [1,13,14,2,15,16,3,17];
I use clusterdata (with criterion as distance) which returns me the cluster number each data point in A belongs to:
T = [1,2,2,1,2,2,1,2];
I want to have a new array which separates these data points into:
B = [1,2,3] C = [13,14,15,16,17]
How do I achieve this?
0 commentaires
Réponse acceptée
Guillaume
le 15 Avr 2015
Modifié(e) : Guillaume
le 15 Avr 2015
Asplit = accumarray(T', A, [], @(v) {v});
Note that the output is a cell array where each cell is a cluster. It's much better to use a cell array than individually named variables.
The above line is equivalent to:
Asplit = cell(max(T), 1);
for cluster = 1:max(T)
Asplit{cluster} = A(T == cluster);
end
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Creating and Concatenating Matrices dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!