matlab的pdist函数详解

Posted mrfanl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab的pdist函数详解相关的知识,希望对你有一定的参考价值。

Pairwise distance between pairs of object(Pdist函数用于各种距离的生成)

语法:

D=pdist(x)

D=pdist(x,distance)

解释:

D=pdist(x) 计算m*n的数据矩阵中对象之间的欧几里得距离。矩阵中每一行作为observation,每一列作为variables(即计算矩阵中每一行之间的距离),D得到的是一个长度为m(m-1)/2的距离向量,距离是按顺序排列的(2,1),(3,1)…….(m,1),(3,2)……..(m,2)………(m,m-1);如下图:

 技术分享图片

 

为了节省空间D被格式化为一个向量,但是你可以使用squreform函数吧这个向量转换成一个方阵,这样矩阵中的(i,j)i<j,对应于原始数据集中的i和j之间的距离。如下图

 技术分享图片

 

D=pdist(x,distance)计算数据矩阵中对象之间的距离,使用distance指定的方法,distance可以取

 技术分享图片

 

上图从上至下分别为:欧几里得距离(默认),欧式距离平方,标准欧几里得距离,曼哈顿距离,闵可夫斯基距离,切比雪夫距离,马氏距离,夹角余弦距离,相关距离(两个向量的线性相关程度),spearman,汉明距离,杰卡德距离,

 技术分享图片

技术分享图片

技术分享图片

 

 

●部分图片来自matlab官方文档

以上是关于matlab的pdist函数详解的主要内容,如果未能解决你的问题,请参考以下文章

如何使 pdist 忽略一个值(Matlab)

MATLAB中dist与pdistpdist2的区别与联系

MATLAB中dist与pdistpdist2的区别与联系

在MATLAB中知道多个点的位置坐标,怎样求各个点之间的距离?

MATLAB计算数据各种距离矩阵(欧式距离加权欧式距离...)

MATLAB 中复杂向量的高效分类