2

我想根据 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/function 可以正确执行此操作?

4

1 回答 1

3

正如我从标题中了解到的,您想从 PDIST 函数结果创建一个方阵。可以使用SQUAREFORM函数轻松完成。它在两个方向都有效。

a = pdist(...);
asq = squareform(a);
于 2013-04-01T20:28:25.553 回答