计算向量与其排列之间的平均距离

时间:2016-02-04 00:35:37

标签: matlab combinations vectorization distance

我有一个矢量,说x = [1 1.5 2]。我想计算该向量与向量的随机排列之间的预期距离。假设所有排列都是同等可能的。

对于上面的示例,解决方案应为4/9。第一个元素平均更改1/2,第二个元素平均更改1/3,最后一个元素更改1/2。因此,平均变化为4/9

问题是这个载体有大约50-100个条目。有没有一种聪明的方法来计算这个预期的距离?

2 个答案:

答案 0 :(得分:3)

我现在正在使用mean(mean(abs(bsxfun(@minus,x,x')))),这似乎可以解决问题。

答案 1 :(得分:3)

bsxfun无法提供最快解决方案的极少数情况之一。如果要使用对称性,请使用pdist

s=sum(pdist(x,'cityblock'))/numel(x).^2*2