Problem with Cluster command
Mostrar comentarios más antiguos
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?
Respuesta aceptada
Más respuestas (1)
Walter Roberson
el 24 de En. de 2020
Z = linkage(squareform(Y)) ;
6 comentarios
Walter Johnson
el 24 de En. de 2020
Walter Roberson
el 24 de En. de 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
el 26 de En. de 2020
Walter Roberson
el 26 de En. de 2020
Hmmm... I just realized that you might somehow have an existing variable named cluster
Walter Johnson
el 26 de En. de 2020
Walter Roberson
el 26 de En. de 2020
It does happen a fair bit, most commonly with a variable named sum .
Categorías
Más información sobre Hierarchical Clustering en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!