Matlab:如何实现 L1 距离计算的矢量化版本

Matlab : How to implement a vectorized version for L1 distance calculation

我想计算维数很高的向量之间的汉明距离。数据点是称为特征的向量。假设每个分量 f_i 作为一个整数,它以具有 j 位的二进制形式表示。每个数据点有 n = 900 个特征组件。问题的表述是

下图中给出了2个不同向量之间的汉明距离公式,其中j = number of bits

对于前 n = 10 个特征组件,

f = [3,4,1,4,5,6,6,7,1,14];
g = [1,3,5,6,7,8,11,3,10,2];

数组的每个组件/元素都使用 dec2bin(f_i,l)

的 16 位二进制表示法表示

我尝试使用 dist = sum((f-g).^2,2)* 1/2^l,其中 l= 16 位,但这没有意义,因为公式中有 2 个求和。

如果我没理解错的话,你想要的是

sum(bitxor(f,g))/2^l

其中 l=16