2016-12-01 92 views
0

我想计算非常高维向量之间的汉明距离。数据点是一个称为特征的向量。假设,每个组件f_i作为一个整数,它以其二进制形式表示,具有j比特。每个数据点有n = 900特征组件。问题制剂是Matlab:如何实现L1距离计算的矢量化版本

Problem

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

formula

对于离让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个求和在公式中。

+0

你'F'有11个元素,'g'有10家,两者应该是二维的。你可以解释吗? –

+0

有一个错字.....都是相同的大小。对不起,错误 –

+0

在我的应用程序中,它们是二维的,而不是整数值。我想知道如何计算距离,以便日后可以将其扩展到我的完整应用程序 –

回答

1

如果我理解正确的,你要的是

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

其中l=16