根据pdist的结果创建距离矩阵

时间:2013-04-01 20:18:18

标签: matlab matrix

我想根据pdist的结果创建一个矩阵。 pdist返回距离矢量:1-2,1-3,1-4 .. 2-3 ..等等。

我试图按照建议使用它来获得上三角形:

a = [1,2,3,4,5,6,7,8,9,10]
b=triu(ones(5),1);
b(b==1)=a;

但是会返回

0     1     2     4     7 
0     0     3     5     8
0     0     0     6     9
0     0     0     0    10
0     0     0     0     0

是否有正确的oneliner /函数?

1 个答案:

答案 0 :(得分:3)

据我所知,你想从PDIST函数结果中创建一个方阵。可以使用SQUAREFORM函数轻松完成。它在两个方向都有效。

a = pdist(...);
asq = squareform(a);