matlab 韩明距离_Matlab计算两集合间的海明距离

本文介绍了如何在Matlab中计算两个不同行数但列数相同的矩阵之间的海明距离,通过创建查找表提高运算效率,给出了具体实现的hammingDist函数代码。
摘要由CSDN通过智能技术生成

一.问题描述

B1[1 2 3

4 5 6

7 8 9]

B2[12 13 14

21 31 41

51  1 1

81 1 1]

两个十进制矩阵,行数不一样,分别是n1和n2,列数必须一致,为nwords,输出的矩阵Dh是[n1,n2],这和求两句真的欧氏距离一样的。

输出[1 1] = 1和12海明+2和13海明 + 3和14海明,[1 2] = 1和21 + 2和31 + 3和41,也就是说[i j]是B1第i行和B2第j行的海明距离。

二.问题分析

1和12 21 51 81分别求海明距离,防御a(一个航向量);2和13 31 1 1求海明距离,放于b;3和14 41 1 1 防御c;然后a+b+c就得到了,B1中第一行和B2中各行的海明距离。

为了加快运算,可以打表,两个nwords=8的数异或后还是0到255(bitxor异或得到的是10禁止数),所以吧0到255共256个数每个数包含几个1(就是海明距离)存在一个矩阵bit_in_char中。

三.实现

function Dh=hammingDist(B1, B2)

%

% Compute hamming distance between two sets of samples (B1, B2)

%

% Dh=hammingDist(B1, B2);

%

% Input

% B1, B2: compact bit vectors.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值