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!