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 (n−1)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),...,(n−1,n) 之间的距离。
运行示例
欧式距离:
>> load fisheriris % 导入荨片的相关数据
>> d = pdist(meas); % 计算欧式距离
>> size(d)
ans =
1 11175
>>
加权欧式距离(方差加权距离):
>> d = pdist(meas, 'seuclidean');
>> size(d)
ans =
1 11175
>>
以上是关于MATLAB计算数据各种距离矩阵(欧式距离加权欧式距离...)的主要内容,如果未能解决你的问题,请参考以下文章