一.问题描述

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. Each datapoint is one row.

% size(B1) = [ndatapoints1, nwords]

% size(B2) = [ndatapoints2, nwords]

% It is faster if ndatapoints1 < ndatapoints2

%

% Output

% Dh = hamming distance.

% size(Dh) = [ndatapoints1, ndatapoints2]

% example query

% Dhamm = hammingDist(B2, B1);

% this will give the same result than:

% Dhamm = distMat(U2>0, U1>0).^2;

% the size of the distance matrix is:

% size(Dhamm) = [Ntest x Ntraining]

% loop-up table:

bit_in_char = uint16([...

0 1 1 2 1 2 2 3 1 2 2 3 2 3 3 4 1 2 2 3 2 3 ...

3 4 2 3 3 4 3 4 4 5 1 2 2 3 2 3 3 4 2 3 3 4 ...

3 4 4 5 2 3 3 4 3 4 4 5 3 4 4 5 4 5 5 6 1 2 ...

2 3 2 3 3 4 2 3 3 4 3 4 4 5 2 3 3 4 3 4 4 5 ...

3 4 4 5 4 5 5 6 2 3 3 4 3 4 4 5 3 4 4 5 4 5 ...

5 6 3 4 4 5 4 5 5 6 4 5 5 6 5 6 6 7 1 2 2 3 ...

2 3 3 4 2 3 3 4 3 4 4 5 2 3 3 4 3 4 4 5 3 4 ...

4 5 4 5 5 6 2 3 3 4 3 4 4 5 3 4 4 5 4 5 5 6 ...

3 4 4 5 4 5 5 6 4 5 5 6 5 6 6 7 2 3 3 4 3 4 ...

4 5 3 4 4 5 4 5 5 6 3 4 4 5 4 5 5 6 4 5 5 6 ...

5 6 6 7 3 4 4 5 4 5 5 6 4 5 5 6 5 6 6 7 4 5 ...

5 6 5 6 6 7 5 6 6 7 6 7 7 8]);

n1 = size(B1,1);

[n2, nwords] = size(B2);

Dh = zeros([n1 n2], 'uint16');

for j = 1:n1

for n=1:nwords

y = bitxor(B1(j,n),B2(:,n));

Dh(j,:) = Dh(j,:) + bit_in_char(y+1);

end

end

matlab 韩明距离_Matlab计算两集合间的海明距离相关推荐

  1. Matlab计算两集合间的海明距离

    一.问题描述 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,列数必须一致,为nwo ...

  2. c#语言+计算两个位置的距离,C#计算两个经纬度之间的距离

    最近在项目中有一个功能需要计算两个经纬度之间的距离,在网上找了很多,也试了很多,下面的计算方法得出的结果是精度是最高,希望对大家有所帮助. private const double EARTH_RAD ...

  3. php 2个经纬度之间的距离,php计算两个经纬度之间的距离

    /** * @desc 根据两点间的经纬度计算距离 * @param $lat1 * @param $lng1 * @param $lat2 * @param $lng2 * @return floa ...

  4. mysql计算两个经纬度之间的距离_mysql计算两个经纬度之间的距离公式

    #1.两点距离(1.4142135623730951)select st_distance(point(0,0),point(1,1));select st_distance(point (120.1 ...

  5. 证据理论(3)—— 计算两个证据体的距离

      计算两个证据体的距离的主要思想是:定义一个由幂集 2Ω2^\Omega2Ω 中的元素作为基底的向量空间 S2ΩS_{2^\Omega}S2Ω​,一个证据源的基本概率分配函数 (bpa) 就是该证据 ...

  6. R语言计算曼哈顿距离(Manhattan Distance)实战:计算两个向量的曼哈顿距离、dist函数计算矩阵中两两元素的曼哈顿距离

    R语言计算曼哈顿距离(Manhattan Distance)实战:计算两个向量的曼哈顿距离.dist函数计算矩阵中两两元素的曼哈顿距离 目录 R语言计算曼哈顿距离(Manhattan Distance ...

  7. sklearn计算两个向量之间的距离

    from sklearn.feature_extraction.text import CountVectorizer from sklearn.metrics.pairwise import euc ...

  8. 高德经纬度距离计算php,计算两个经纬度之间的距离 单位(m)

    /** * 计算两个经纬度之间的距离 单位(m) * * @param lat1 * @param lng1 * @param lat2 * @param lng2 * @return */ publ ...

  9. ITK:计算两个索引之间的距离

    ITK:计算两个索引之间的距离 内容提要 输出结果 C++实现代码 内容提要 计算两个索引之间的距离 输出结果 Dist: 1.73205 Dist2: 3 C++实现代码 #include &quo ...

最新文章

  1. c# socket 解决粘包,半包
  2. Spark Client启动原理探索
  3. 2. vi 简介(2)
  4. Vue3中获取鼠标在浏览器x轴和y轴的位置
  5. AN APPROACH OF VECTOR FIELD TEXTURE VISUALIZATION BASED ON FIELD DRIVEN STRENGTH算法实现
  6. 3万一5万新能源电动汽车,3万内的新能源电动轿车
  7. IE6升级到IE11兼容性问题和操作手册
  8. 荣耀XIO升级鸿蒙,距断供不到10天 华为大招来了:不止鸿蒙
  9. macbook或mac Apple ID 更新提示连接服务器出错
  10. matlab中利用快速傅里叶变换对股票价格进行频域分析
  11. 稿定科技内推|稿定让设计更简单,只要你来,稿定就能给你无限可能
  12. TIA博途WINCC中如何获取当前画面编号并发送给PLC?
  13. b2c项目基础架构分析(二)前端框架 以及补漏的第一篇名词解释
  14. 阿里云code登录,阿里云code使用教程
  15. iOS银联支付(最新)
  16. OpenCV每日函数 白平衡相关算法
  17. 【微电网优化】基于matlab粒子群算法求解微网经济调度和环境友好调度优化问题【含Matlab源码 2283期】
  18. hdu4526威威猫系列故事——拼车记
  19. Linux服务器使用php发送邮件,sendmail配置
  20. 风机叶片小规模振动监测数据集--读取测试

热门文章

  1. 题解:洛谷P1706全排列问题
  2. unity il2cpp 源码编译
  3. maven创建SSM(Spring + Spring MVC +Mybatis)项目时的porn.xml文件下各个依赖包的作用
  4. CNCF案例研究:Uber
  5. 【餐厅点餐平台|二】总体设计
  6. WebConfig中常用的connectionStrings配置
  7. 呼叫中心参考资料汇总
  8. 2008.09.25 半夜爬起来
  9. 【汇正财经】在股市中要保持心态平和,应该注意哪些?
  10. mysql中ddl语句有哪些_SQL中常用DDL语句