【发布时间】:2016-05-13 10:36:35
【问题描述】:
我有一个向量,比如x = [1 1.5 2]。我想计算该向量与向量的随机排列之间的预期距离。假设是所有排列的可能性相同。
对于上面的示例,解决方案应该是4/9。第一个元素平均更改1/2,第二个元素平均更改1/3,最后一个元素更改1/2。因此平均变化为4/9。
问题是这个向量有大约 50-100 个条目。有没有一种聪明的方法来计算这个预期的距离?
【问题讨论】:
-
我认为对于您的示例,预期距离为 ~1.055。向量有 5 种排列,距离 sqrt(2)(两次)、sqrt(2)/2 和 1.225(也是两次),平均约为 1.055。
-
@David:你说的是欧几里得距离(l2),但问题中的数字与l1-distance相匹配
-
是的,我对我正在寻找的距离测量并不精确。我实际上只是想计算每两点之间差异的绝对值。
-
@Immo:你实现这个的问题到底是什么?您需要的只是一两个循环,
abs和mean。 -
我现在正在使用
mean(mean(abs(bsxfun(@minus,x,x')))),这似乎可以解决问题。
标签: matlab combinations vectorization distance