标签: hamming-distance

2
推荐指数
1
解决办法
4570
查看次数

在Matlab中计算两个二进制数字串之间的汉明距离

我有两个相等长度的字符串,包含1和0.每个字符串长128位,我想计算它们之间的汉明距离.我能做到这一点的最佳方式是什么?

例如a ='1000001'和b ='1110001' - > dist =汉明(a,b);

matlab hamming-distance

2
推荐指数
2
解决办法
1万
查看次数

R:聚类文档

我有一个文档TermMatrix,如下所示:

      artikel naam product personeel loon verlof    
 doc 1    1       1    2        1        0    0     
 doc 2    1       1    1        0        0    0    
 doc 3    0       0    1        1        2    1   
 doc 4    0       0    0        1        1    1   
Run Code Online (Sandbox Code Playgroud)

在包中tm,可以计算两个文档之间的汉明距离。但现在我想对汉明距离小于 3 的所有文档进行聚类。所以这里我希望聚类 1 是文档 1 和 2,聚类 2 是文档 3 和 4。有可能这样做吗?

r cluster-analysis matrix hamming-distance term-document-matrix

2
推荐指数
1
解决办法
2062
查看次数

R - 按组计算不匹配

我想知道如何按组计算不匹配的情况.

让我们想象这是我的数据:

sek = rbind(c(1, 'a', 'a', 'a'), 
        c(1, 'a', 'a', 'a'), 
        c(2, 'b', 'b', 'b'), 
        c(2, 'c', 'b', 'b'))

colnames(sek) <- c('Group', paste('t', 1:3, sep = ''))
Run Code Online (Sandbox Code Playgroud)

数据看起来像这样

     Group t1  t2  t3 
[1,] "1"   "a" "a" "a"
[2,] "1"   "a" "a" "a"
[3,] "2"   "b" "b" "b"
[4,] "2"   "c" "b" "b"
Run Code Online (Sandbox Code Playgroud)

为了获得类似的东西

Group 1 : 0 
Group 2 : 1 
Run Code Online (Sandbox Code Playgroud)

使用stringdist库来计算它是很奇怪的.

就像是

seqdistgroupStr = function(x) stringdistmatrix(x, method = 'hamming')

sek %>% 
  as.data.frame() …
Run Code Online (Sandbox Code Playgroud)

r sequence hamming-distance dplyr

2
推荐指数
1
解决办法
201
查看次数

输入2个整数并得到二进制,brgc和汉明距离

除了海明距离外,我得到了一切.我一直得到错误"int()无法使用显式基础转换非字符串"

这是我的代码:

def int2bin(n):                                
    if n:
        bits = []
        while n:
            n,remainder = divmod(n, 2)
            bits.insert(0, remainder)
        return bits
    else: return [0]

def bin2gray(bits):                  
    return bits[:1] + [i ^ ishift for i, ishift in zip(bits[:-1], bits[1:])]

def hamming(a,b):                        
    assert len(a) == len(b)
    count,z = 0,int(a,2)^int(b,2)
    while z:
        count += 1
        z &= z-1 
    return count

def main():
    a = int(input("Positive integer 1: "))        
    b = int(input("Positive integer 2: "))
    print('int:%2i    binary:%12r    BRGC:%12r' %    
          ( a,
            int2bin(a),
        bin2gray(int2bin(a))
           ))
    print('int:%2i    binary:%12r …
Run Code Online (Sandbox Code Playgroud)

python binary hamming-distance gray-code

2
推荐指数
1
解决办法
2552
查看次数

将所有字符串(DNA)分开,距离为Hamming = 1

我有一系列DNA序列,如:

AA
TA
AC
CC

我搜索一个更快的方法来计算所有序列对之间的汉明距离(可能通过排序......),然后是天真的方法(O(N ^ 2))

For motif1 in array
   For motif2 in array
      calculate Hamming_Distance(motif1 , motif2)
   end
end
Run Code Online (Sandbox Code Playgroud)

我需要具有汉明距离= 1的对的序列

string algorithm hamming-distance

2
推荐指数
1
解决办法
277
查看次数

为什么 cv2.NORM_HAMMING 给出的值与实际汉明距离不同?

我正在使用汉明距离来计算由来自 opencvBRISK 描述符获得的两个关键点描述符之间的差异。我遵循opencv 文档建议并在计算距离时使用cv2.NORM_HAMMING如下:

dist_opencv = cv2.norm(des_1,des_2,cv2.NORM_HAMMING)
Run Code Online (Sandbox Code Playgroud)

它在两个描述符中提供值 87.0。但是,根据汉明距离描述,这是不正确的。我遵循了两种替代方法(在 python 中实现)来验证这一点:

dist_alt_app_1 = len(np.where(np.abs(des_1 - des_2)>0)[0])
dist_alt_app_2 = sum(el1 != el2 for el1, el2 in zip(des_1, des_2))
Run Code Online (Sandbox Code Playgroud)

dist_alt_app_1 和 dist_alt_app_2 提供的值 43 与从 opencv 获得的 87.0 不相似。进行了一些搜索以了解这种差异的原因。但是没有找到解释和澄清。

任何人都可以为这种差异提供解释吗?提前致谢。

============== 在这里添加一个例子(使问题更笼统):

des_1 = [180  25 195  96  96  88   0   0]
des_2 = [244  27 195  96  96 192   0   0]
Run Code Online (Sandbox Code Playgroud)

对于上述两个描述符,dist_opencv = 5.0 和其他(dist_alt_app_1 和 dist_alt_app_2)给出 …

python opencv distance hamming-distance

2
推荐指数
1
解决办法
1916
查看次数

计算两个描述符之间的距离

我正在尝试计算已计算的两个描述符之间的距离(欧几里德或汉明).问题是我不想使用匹配器,我只想计算两个描述符之间的距离.我正在使用OpenCV 2.4.9,并且我的遗留描述符存储在Mat类型中:

Mat descriptors1;
Mat descriptors2; 
Run Code Online (Sandbox Code Playgroud)

现在我只想计算描述符1的row1和描述符2的row1之间的距离(最好是因为我使用二进制描述符的汉明距离)(例如).

我试过使用bitwise_xor()函数,但后来我没有一个有效的方法来做bitcount.没有函数来计算两个阵列之间的汉明距离?

我注意到我对OpenCV很新,但我很感激任何帮助.谢谢

c++ opencv euclidean-distance hamming-distance feature-descriptor

1
推荐指数
1
解决办法
4330
查看次数

查找ORB特征描述符之间的汉明距离

我正在尝试编写一个匹配ORB功能的函数.我没有使用默认匹配器(bfmatcher,flann matcher),因为我只想在图像中使用其他图像中的特征匹配特征.

我看到ORS描述符是一个二进制数组.

我的问题是如何匹配2个特征,即如何找到2个描述符之间的汉明距离?

ORB描述符:

descriptor1 =[34, 200, 96, 158, 75, 208, 158, 230, 151, 85, 192, 131, 40, 142, 54, 64, 75, 251, 147, 195, 78, 11, 62, 245, 49, 32, 154, 59, 21, 28, 52, 222]
descriptor2 =[128, 129, 2, 129, 196, 2, 168, 101, 60, 35, 83, 18, 12, 10, 104, 73, 122, 13, 2, 176, 114, 188, 1, 198, 12, 0, 154, 68, 5, 8, 177, 128]
Run Code Online (Sandbox Code Playgroud)

谢谢.

opencv computer-vision hamming-distance keypoint orb

1
推荐指数
1
解决办法
5636
查看次数

优化汉明距离 Python

我有大约 1M 的二进制 numpy 数组,我需要它们之间的汉明距离才能找到 k-最近邻,我得到的最快方法是使用 cdist,返回一个带距离的浮点矩阵。

由于我没有足够的内存来获得 1Mx1M 的浮点矩阵,所以我当时正在做一个元素,如下所示:

from scipy.spatial Import distance
Hamming_Distance = distance.cdist(array1,all_array,'hamming')
Run Code Online (Sandbox Code Playgroud)

问题是每个 Hamming_Distance 需要 2-3 秒,1m 文档需要一个永恒的时间(我需要将它用于不同的 k)。

有什么最快的方法吗?

我正在考虑多处理或在 C 上进行,但我在理解它如何在 python 上进行多处理时遇到了一些麻烦,我不知道如何将 C 代码与 Python 代码混合。

python optimization numpy knn hamming-distance

1
推荐指数
1
解决办法
2124
查看次数

Java对Long变量的XOR操作和BitCount返回java.lang.NumberFormatException

我试图对Java中的两个64位Long变量执行XOR操作。问题是,当我在变量中添加超过16位时,它将失败。

例如,这有效并返回7:

Long h1 = Long.parseLong("1100001101001101");
Long h2 = Long.parseLong("1100001101000001");
System.out.println(Long.bitCount(h1 ^ h2));
Run Code Online (Sandbox Code Playgroud)

如果我将h1和h2的值增加到:

Long h1 = Long.parseLong("11000110000110100110101101001101");
Long h2 = Long.parseLong("11000011100001101001101101000001");
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:

例外在线程“主” java.lang.NumberFormatException:对于输入字符串: “11000110000110100110101101001101”

java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
在java.lang.Long.parseLong(Long.java:592)
在java.lang.Long.parseLong(Long.java:631)

如果我加倍(64位要计算的),则相同:

Long h1 = Long.parseLong("1100011100011000011010011010110100110110000110100110101101001101");
Long h2 = Long.parseLong("1100001110001100001101001101011010011011100001101001101101000001");
Run Code Online (Sandbox Code Playgroud)

关于为什么为什么失败超过16位有帮助吗?

java xor bitcount hamming-distance long-integer

1
推荐指数
1
解决办法
43
查看次数

Python中两个字符串之间的汉明距离

我是 Python 新手,我需要找到两个字符串之间的汉明距离:

chaine1 = 6fb17381822a6ca9b02153d031d5d3da

chaine2 = a242eace2c57f7a16e8e872ed2f2287d
Run Code Online (Sandbox Code Playgroud)

XOR 功能不行,我在网上搜索也不是很成功。

我试图修改我在网上找到的东西,但有一些无效的语法......:

assert len (chaine1) == len(chaine2)

return sum(chaine1 != chaine2 for chaine1, chaine2 in zip(chaine1, chaine2))


if __name__=="__main__":    
chaine1 = hashlib.md5("chaine1".encode()).hexdigest()

chaine2 = hashlib.md5("chaine2".encode()).hexdigest()
print hamming_distance(chaine1, chaine2)
Run Code Online (Sandbox Code Playgroud)

关于我如何进行的任何想法?谢谢!

python string xor hamming-distance

-2
推荐指数
1
解决办法
2万
查看次数