【问题标题】:dendrogram of cell array in matlabmatlab中单元格数组的树状图
【发布时间】:2013-08-03 22:41:49
【问题描述】:

我想要这个数据的树状图:

tt =  1.0e+03 *

第 1 至 5 列

3.8334    3.9707    3.8887    2.1713    2.5616

第 6 至 7 列

2.3764    2.4533

我使用matlab中的代码:

tree = linkage(tt,'average');
figure()
dendrogram(tree)

但它给出了这个错误:

使用链接时出错(第 137 行)

第一个输入似乎不是距离矩阵,因为它的大小与 PDIST 函数的输出不兼容。数据矩阵输入必须多于一行。

有什么问题
我希望输出是间隔。是树状图输出间隔吗?

【问题讨论】:

  • 至少 s.b 请告诉我我们可以做一些事情,使树状图的输出变成间隔,数字如:{{47080, 50280}, {143820, 146820}, {228730, 231330}, {249560 , 252170}, {346060, 349220}, {461740, 463540}, {546100, 548810}, {646400, 646960}, {690680, 691120}};
  • 这是正确的代码。只需转置tt 即可制作列向量:tt'

标签: matlab hierarchical-clustering


【解决方案1】:

链接的输入以行作为观察值,将列作为变量排列,但在您的示例中,tt 是一个 1x7 行向量,表明 7 个变量中的每一个都有一个观察值。相反,如果此数据表示单个变量的 7 个观察值,则将 tt 转置为列向量,然后您可以绘制树状图:

% your original tt variable
tt = 1.0e+03 .* [3.8334 3.9707 3.8887 2.1713 2.5616 2.3764 2.4533];
% transpose from row vector to column vector
tt = tt';
% proceed as planned
tree = linkage(tt,'average');
figure()
dendrogram(tree)

【讨论】:

  • 行得通,谢谢。但我还有另一个问题。你能回答我吗?我希望这个树状图的输出是间隔。我真的不知道为什么,但我正在写一篇文章,它是在对它们执行树状图后得到的结果是间隔。有可能还是我错了,这是不可能的
  • 我不确定,间隔代表什么?置信区间?
  • 它们是音频和视频集群。例如对于视频,应该做这样的事情:“视频流根据颜色直方图被分割成镜头,以检测突然变化和渐进式过渡。每个生成的镜头都由一个关键帧汇总,在中间拍摄镜头,依次表示为 RGB 直方图,每种颜色有 8 个 bin。自下而上的聚类依赖于使用 Ward 链接的 512 维颜色直方图之间的欧几里德距离”我看到了如下间隔的结果:{{47080, 50280} , {143820, 146820}, {228730, 231330}, {249560, 252170}}
猜你喜欢
  • 2015-08-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多