Problem with Cluster command
이전 댓글 표시
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?
채택된 답변
추가 답변 (1개)
Walter Roberson
2020년 1월 24일
Z = linkage(squareform(Y)) ;
댓글 수: 6
Walter Johnson
2020년 1월 24일
Walter Roberson
2020년 1월 24일
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
2020년 1월 26일
Walter Roberson
2020년 1월 26일
Hmmm... I just realized that you might somehow have an existing variable named cluster
Walter Johnson
2020년 1월 26일
Walter Roberson
2020년 1월 26일
It does happen a fair bit, most commonly with a variable named sum .
카테고리
도움말 센터 및 File Exchange에서 Hierarchical Clustering에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!