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

Posted Z.Q.Fengᯤ⁵ᴳ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MATLAB计算数据各种距离矩阵(欧式距离加权欧式距离...)相关的知识,希望对你有一定的参考价值。


代码

在 MATLAB 中计算距离命令是 pdist,其命令格式如下:

d = pdist(X, distance)

参数

其中 X 是输入数据(矩阵),即观测矩阵,X 的每行为样品的观测数据,每列为观测指标,distance 参数代表距离类型(默认欧式距离),各种距离如下:

参数距离
‘euclidean’欧氏距离
‘cityblock’绝对距离
‘minkowski’明氏距离
‘chebychev’切氏距离
‘seuclidean’方差加权距离(加权欧氏距离)
‘mahalanobis’马氏距离

输出 d d d 是一个行向量,其长度为 ( n − 1 ) n / 2 (n - 1)n/2 (n1)n/2,其中 n n n 为样本容量, d d d 的元素分别是个体 ( 1 , 2 ) , ( 1 , 3 ) , . . . , ( 1 , n ) , ( 2 , 3 ) , . . . , ( 2 , n ) , . . . , ( n − 1 , n ) (1, 2), (1, 3), ..., (1, n), (2, 3), ..., (2, n), ..., (n-1, n) (1,2),(1,3),...,(1,n),(2,3),...,(2,n),...,(n1,n) 之间的距离。


运行示例

欧式距离:

>> load fisheriris % 导入荨片的相关数据
>> d = pdist(meas); % 计算欧式距离
>> size(d)
ans =
           1       11175
>> 

加权欧式距离(方差加权距离):

>> d = pdist(meas, 'seuclidean');
>> size(d)
ans =
           1       11175
>>

以上是关于MATLAB计算数据各种距离矩阵(欧式距离加权欧式距离...)的主要内容,如果未能解决你的问题,请参考以下文章

Python (3) 如何计算欧式距离

大数据学习笔记:距离度量和相似度度量

算法:点与点之间欧式距离最小

Numpy Broadcast 执行欧式距离矢量化

高效精确地计算欧式距离

MATLAB点云处理:欧式聚类分割