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
我想计算维数很高的向量之间的汉明距离。数据点是称为特征的向量。假设每个分量 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)
我尝试使用 dist = sum((f-g).^2,2)* 1/2^l
,其中 l= 16 位,但这没有意义,因为公式中有 2 个求和。
如果我没理解错的话,你想要的是
sum(bitxor(f,g))/2^l
其中 l=16