生成了错误的树状图

Wrong dendrogram generated

我有31个数据,但是dendrogram少了一个数据。这是我的代码:

A = csvread('similarityNoGrpS2.csv',1,1) % 31x31 double
Z = linkage(A, 'average') % 30x3 double
H = dendrogram(Z,'Orientation','left','ColorThreshold','default') %29x1 line

可以找到我的输入文件here

这是我的 dendrogram:

根据Z(24,30)(27,31)应该是聚类的,但是在dendrogram图中,我们可以看到没有312730 聚集在一起,这是错误的!

谁能帮我解决这个问题?

P.S。我正在使用 MATLAB R2016a。

您需要将代码的最后一行修改为:

H = dendrogram(Z, 0, 'Orientation', 'left', 'ColorThreshold', 'default');

对于给定的数据给出:


说明

您的原始数据集A)有超过30个点但您没有指定P 的值。 documentation:

中提到

If you do not specify P then dendrogram uses 30 as the maximum number of leaf nodes. To display the complete tree, set P equal to 0.

所以你需要把P=0放在这个语法中:

dendrogram(tree,P,Name,Value)