2016-12-01 123 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