文章目录


代码

在 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
>>
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐