我正在使用来自 Bioinformatics Toolbox(版本 3.7)的CLUSTERGRAM对象。MATLAB 版本 R2011a。
我想为clustergram获取行和列的排列向量,就像我可以使用树状图函数一样:
x = magic(10);
>> [~,~,permrows] = dendrogram(linkage(x,'average','euc'))
permrows =
9 10 6 7 8 1 2 4 5 3
>> [~,~,permcols] = dendrogram(linkage(x','average','euc'))
permcols =
6 7 8 9 2 1 3 4 5 10
我发现 clustergram 和 dendrogram 的聚类不一样,很可能是由于优化的叶子排序计算(我不想禁用它)。
例如,对于来自的 clustergram:
clustergram(x)
('average'
并且'eucledian'
是 clustergram 的默认方法)
向量(如附图所示)应为:
permrows = [1 2 4 5 3 10 9 6 7 8];
permcols = [1 2 8 9 6 7 10 5 4 3];
那么,如何以编程方式获取这些向量呢?有熟悉这个物体的吗?
有人可以提出一个好的选择吗?我知道我可以创建一个结合 imagesc 和 dendrogram 函数的类似图形,但是在 clustergram 中的叶子排序比在 dendrogram 中要好得多(最佳)。