我想根据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 /函数?
答案 0 :(得分:3)
据我所知,你想从PDIST函数结果中创建一个方阵。可以使用SQUAREFORM函数轻松完成。它在两个方向都有效。
a = pdist(...);
asq = squareform(a);