gpt4 book ai didi

matlab - 来自 CLUSTERGRAM 对象的置换向量 (MATLAB)

转载 作者:太空宇宙 更新时间:2023-11-03 20:00:44 24 4
gpt4 key购买 nike

我正在使用 CLUSTERGRAM来自生物信息学工具箱(3.7 版)的对象。MATLAB 版本 R2011a。

我想获得 clustergram 的行和列的置换向量,就像我可以用 dendrogram 做的那样功能:

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];

clustergram example

那么,如何以编程方式获取这些向量?有人熟悉这个对象吗?

谁能推荐一个好的替代方案?我知道我可以结合 imagesc 和树状图函数创建一个类似的图形,但簇状图中的叶序比树状图中的叶序要好得多(最佳)。

最佳答案

通过查看文档,我猜想 get(gco,'ColumnLabels')get(gco,'RowLabels'),其中 gco 是 clustergram 对象,应该给你重新排序的标签。请注意,相应的 set 方法以原始顺序接收标签并在内部对它们重新排序。

因此,如果您使用了自定义标签 (set(gco,'RowLabels',originalLabels))

[~,permrows] = ismember(get(gco,'RowLabels'),originalLabels)

应该返回行排列。

关于matlab - 来自 CLUSTERGRAM 对象的置换向量 (MATLAB),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11022051/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com