Problem with Cluster command
Afficher commentaires plus anciens
When I ran the following three commands from the Statistics and Machine Learning Toolbox in the shown order, in my command window
Y = pdist(X)
Z - linkage(Y)
T = cluster(Z,'cutoff',1.2)
where X is 3042x53 matrix of type double, I get the following error (just after I execute statement 3) "Index in position 1 is invalid. Array indices must be positive integers or logical values." I then repeated these commands with a smaller X input (4x8). Same result. I believe that "cluster" wants integers for the first two columns of the Z input, (Z was produced by linkage) but the last column of Z is a distance measure and is real - so all columns of Z must be real. What am I doing wrong or misunderstanding?
Réponse acceptée
Plus de réponses (1)
Walter Roberson
le 24 Jan 2020
Z = linkage(squareform(Y)) ;
6 commentaires
Walter Johnson
le 24 Jan 2020
Walter Roberson
le 24 Jan 2020
X = rand(4,8);
Y = pdist(X);
SY = squareform(Y);
Z = linkage(SY);
T = cluster(Z, 'cutoff', 1.2)
works for me. Tested in R2019a.
What shows up when you use
which linkage
? You should see toolbox/stats/stats/linkage.m . I am wondering if perhaps you are accidentally getting the linkage() routine from Peter Corke's Robotics Toolbox.
Walter Johnson
le 26 Jan 2020
Walter Roberson
le 26 Jan 2020
Hmmm... I just realized that you might somehow have an existing variable named cluster
Walter Johnson
le 26 Jan 2020
Walter Roberson
le 26 Jan 2020
It does happen a fair bit, most commonly with a variable named sum .
Catégories
En savoir plus sur Hierarchical Clustering dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!