当前位置:网站首页>MATLAB中dist与pdist、pdist2的区别与联系
MATLAB中dist与pdist、pdist2的区别与联系
2022-08-02 14:17:00 【Zhi Zhao】
一、dist
dist为欧式距离加权函数。
Z = dist(W,P);
W:指定S行R列的权值矩阵。
P:指定表示R行Q列的输入矩阵,Q为输入的列向量。
函数的返回值Z为一个S行Q列的矩阵。
例1:
>> W = rand(4,3)
W =
0.8342 0.6690 0.1222
0.0156 0.5002 0.6712
0.8637 0.2180 0.5996
0.0781 0.5716 0.0560
>> P = rand(3,1)
P =
0.0563
0.1525
0.0196
>> Z = dist(W,P)
Z =
0.9394
0.7396
0.9962
0.4212
二、pdist
D = pdist(X);
用法:对于一个M×N的矩阵X,pdist计算每对行向量的相互距离,默认采用欧氏距离公式;函数的返回值为向量D,D是具有一行,(m*(m-1)/2)列的行向量。
例2-1:
>> X = randn(4,2)
X =
0.0378 1.5239
-0.3636 0.5458
0.1496 2.0099
-1.9445 1.4167
>> D = pdist(X)
D =
1.0572 0.4987 1.9852 1.5514 1.8049 2.1765
D = pdist(X,distance); 指定使用的距离公式。
distance可以选择以下参数:
'euclidean' - 欧氏距离(默认)
'squaredeuclidean' - 平方欧氏距离
'seuclidean' - 标准化欧氏距离
'cityblock' - 城市街区距离
'minkowski' - 闵可夫斯基距离。默认指数为2,若要指定其他指数,请使用D = PDIST(X,'minkowski',P); 其中,指数P是一个标量正值。
'chebychev' - 切比雪夫距离(最大坐标差)
'mahalanobis' - 马氏距离
'cosine' - 夹角余弦距离
'correlation' - 相关距离
'spearman' - 斯皮尔曼距离
'hamming' - 汉明距离
'jaccard' - 杰卡德距离
function - 用 @ 指定某个函数作为距离计算的公式,例如@DISTFUN
例2-2:
>> X = rand(3,2)
X =
0.8147 0.9134
0.9058 0.6324
0.1270 0.0975
>> D = pdist(X,'minkowski')
D =
0.2954 1.0670 0.9448
三、pdist2
D = pdist2(X,Y);
用法:设X为一个M行N列的矩阵,Y为一个P行Q列的矩阵,则函数的返回值D为一个M行P列的矩阵。
pdist2计算X中任意一个行向量与Y中任意一个行向量的距离,默认采用欧氏距离公式。
例3-1:
>> X = randn(2,3)
X =
-0.4336 3.5784 -1.3499
0.3426 2.7694 3.0349
>> Y = randn(2,3)
Y =
0.7254 0.7147 -0.1241
-0.0631 -0.2050 1.4897
>> D = pdist2(X,Y)
D =
3.3236 4.7449
3.7879 3.3763
D = pdist2(X,Y,distance); 指定使用的距离公式。
pdist与pdist2中distance选择的参数一样。
上述就是在使用dist与pdist、pdist2这三个函数时的区别。
dist与pdist、pdist2之间的联系可以通过MATLAB自带的pdist、pdist2函数的入口参数看出:
[D,I] = pdist2(X,Y,dist,varargin)
Y = pdist(X,dist,varargin)
pdist、pdist2这两个函数在实现过程中也调用了dist函数,用来计算两个向量的距离。
边栏推荐
猜你喜欢
随机推荐
smart_rtmpd 轻松突破 C100K 测试
Mobile copy constructor
PostgreSQL 协议数据样例
解决跨域问题的方法 --- JSONP
LAMP 环境搭建 yum源安装方式 (Apache 2.4.6 +mysql 8.0.28+php 8.1.3)
IDEA如何进行远程Debug
OpenPose command line
Scala的安装和IDEA的使用(初入茅庐)
对象头和synchronized的升级
smart rtmpd web 接口说明
CDN的加速原理是什么?
【软件测试】性能测试理论
华为Vlan创建及原理简单说明
【路由器与交换机的作用与特点 】
WEB自动化之多窗口操作、切换frame、弹窗处理
screen 不间断会话服务
synchronized详解
小知识点系列:StringUtil.isEmpty()与StringUtil.isBlank()的区别
Vert.x web 接收请求时反序列化对象 Failed to decode 如何解决?
静态方法的缺失