对观察成对之间的成对距离
计算观察成对之间的欧几里德距离,并使用距离向量转换为矩阵方形
。
创建具有三个观察和两个变量的矩阵。
RNG('默认')重复性的%x = rand(3,2);
计算欧几里德距离。
d = pdist(x)
d =1×3.0.2954 1.0670 0.9448
成对距离按顺序(2,1),(3,1),(3,2)排列。您可以轻松找到观察之间的距离一世
和j
通过使用方形
。
z =方形格式(d)
z =3×30 0.2954 1.0670 0.2954 0 0.9448 1.0670 0.9448 0
方形
返回一个对称矩阵在其中Z(i,j)
对应于观察之间的成对距离一世
和j
。例如,您可以找到观察到2和3之间的距离。
Z(2,3)
ans = 0.9448.
经过Z.
到了方形
复制输出的功能Pdist.
功能。
Y = SquareForm(Z)
y =1×3.0.2954 1.0670 0.9448
产出y
从方形
和D.
从Pdist.
是相同的。
创建具有三个观察和两个变量的矩阵。
RNG('默认')重复性的%x = rand(3,2);
使用默认指数2计算Minkowski距离。
d1 = pdist(x,'minkowski')
D1 =1×3.0.2954 1.0670 0.9448
使用1的指数计算Minkowski距离,其等于城市块距离。
d2 = pdist(x,'minkowski'1)
D2 =1×3.0.3721 1.5036 1.3136
d3 = pdist(x,'城市街区')
D3 =1×3.0.3721 1.5036 1.3136
定义自定义距离函数,忽略坐标南
使用自定义距离功能计算成对距离。
创建具有三个观察和两个变量的矩阵。
RNG('默认')重复性的%x = rand(3,2);
假设第一观察的第一元素丢失。
X(1,1)=南;
计算欧几里德距离。
d1 = pdist(x)
D1 =1×3.南纳0.9448.
如果观察一世
或者j
包含南
值,功能Pdist.
回报南
对于两者之间的成对距离一世
和j
。因此,D1(1)和D1(2),成对距离(2,1)和(3,1)是南
价值观。
定义自定义距离功能nanyucdist.
忽略坐标南
值并返回欧几里德距离。
功能d2 = naneucdist(xi,xj)%Naneucdist欧几里德距离忽略与NAN的坐标n =尺寸(xi,2);sqdx =(xi-xj)。^ 2;nstar = sum(〜isnan(sqdx),2);%不包含NAN的成对数nstar(nstar == 0)= nan;如果所有对包括NANS,则返回NANd2squared = sum(sqdx,2,'omitnan')。* n./nstar;丢失坐标的%校正d2 = sqrt(d2squared);
计算距离nanyucdist.
通过函数句柄作为输入参数Pdist.
。
d2 = pdist(x,@ naneucdist)
D2 =1×3.0.3974 1.1538 0.9448
X
-输入数据输入数据,指定为大小的数字矩阵m-经过-N。行对应于个别观测,列对应于单个变量。
数据类型:单身的
|双倍的
距离
-距离度量如下表所述,指定为字符向量,字符串标量或函数句柄的距离度量。
价值 | 描述 |
---|---|
'euclidean' |
欧几里德距离(默认)。 |
'squareduclidean' |
平方欧几里德距离。(此选项仅提供效率。它不满足三角不等式。) |
'seuclidean' |
标准化的欧几里德距离。观察之间的每个坐标差异通过除以标准偏差的相应元素来缩放, |
'mahalanobis' |
使用样本协方差的Mahalanobis距离 |
'城市街区' |
城市街区距离。 |
'minkowski' |
Minkowski距离。默认指数为2.使用 |
'chebbychev' |
Chebychev距离(最大坐标差异)。 |
'余弦' |
一个减去点之间的晶的角度(视为载体)之间的余弦。 |
'相关性' |
一个减去点之间的样本相关性(作为值序列)之间的样本相关性。 |
'汉明' |
汉明距离,这是坐标的百分比。 |
'jaccard' |
一个减去Jaccard系数,这是非零坐标的百分比。 |
“矛曼” |
一个减去样本Spearman的观察之间的秩相关性(视为值序列)。 |
@ |
自定义距离功能句柄。距离功能具有表单 功能d2 = distfun(zi,zj)%计算距离......
如果您的数据不稀疏,则通常可以通过使用内置距离而不是函数句柄来更快地计算距离。 |
有关定义,请参阅距离指标。
当你使用时'seuclidean'
那'minkowski'
, 或者'mahalanobis'
,您可以指定其他输入参数distparameter.
控制这些指标。您还可以以与具有默认值相同的指标使用这些指标distparameter.
。
例子:'minkowski'
distparameter.
-距离度量参数值距离度量参数值,指定为正标量,数字矢量或数字矩阵。此参数仅在指定时有效距离
作为'seuclidean'
那'minkowski'
, 或者'mahalanobis'
。
如果距离
是'seuclidean'
那distparameter.
是每个维度的缩放因子的矢量,指定为正矢量。默认值是std(x,'omitnan')
。
如果距离
是'minkowski'
那distparameter.
是Minkowski距离的指数,指定为正标量。默认值为2。
如果距离
是'mahalanobis'
那distparameter.
是一个协方差矩阵,指定为数字矩阵。默认值是COV(x,'omitrows')
。distparameter.
必须是对称和积极的明确。
例子:'Minkowski',3
数据类型:单身的
|双倍的
D.
- 成对距离成对距离,作为数字行向量的长度返回m(m-1)/ 2,对应于对观察成对,在哪里m是观察人数X
。
距离按顺序排列(2,1),(3,1),...,(m,1),(3,2),......,(m,2),......,(m那m-1),即,左侧三角形m-经过-m列顺序中的距离矩阵。观察之间的成对距离一世和j是D((I-1)*(M-I / 2)+ J-I)为了一世≤.j。
你可以转换D.
通过使用通过的对称矩阵方形
功能。z =方形格式(d)
返回A.m-经过-m矩阵在哪里Z(i,j)
对应于观察之间的成对距离一世和j。
如果观察一世或者j包含南
s,那么相应的价值D.
是南
对于内置距离函数。
D.
通常用作聚类或多维缩放中的异化矩阵。有关详细信息,请参阅分层群集和功能参考页面cmdscale.
那COPHENET.
那连锁
那mdscale.
, 和OptimAlleafOrder.
。这些功能需要D.
作为输入参数。
距离度量是定义两个观察之间距离的函数。Pdist.
金宝app支持各种距离指标:欧几里德距离,标准化的欧几里德距离,马哈拉诺比斯距离,城市块距离,Minkowski距离,Chebychev距离,余弦距离,相关距离,汉明距离,Jactard距离和矛盾距离。
给予A.m-经过-N数据矩阵X
,被视为m(1-by-N)行向量X1那X2,......,Xm,矢量之间的各种距离XS.和XT.定义如下:
欧几里德距离
欧几里德距离是Minkowski距离的特殊情况,在哪里P.= 2。
标准化的欧几里德距离
在哪里V.是个N-经过-N对角线矩阵谁jth对角形元素是(S.(j)))2, 在哪里S.是每个维度的缩放因子的矢量。
Mahalanobis距离
在哪里C是协方差矩阵。
城市街区距离
城市街区距离是Minkowski距离的特殊情况,在哪里P.= 1。
Minkowski距离
对于特例P.= 1,Minkowski距离给出了城市街区距离。对于特例P.= 2,Minkowski距离给出了欧几里德距离。对于特例P.=∞,Minkowski距离给出了Chebychev距离。
Chebychev距离
Chebychev距离是Minkowski距离的特殊情况,在哪里P.=∞。
余弦距离
相关距离
在哪里
和 。
汉明距离
jaccard距离
斯普曼距离
在哪里
R.SJ.是等级XSJ.被占领了X1j那X2j,......XMJ.,如图所示Tiedrank.
。
R.S.和R.T.是坐标 - 明智的等级矢量XS.和XT., IE。,R.S.=(R.S.1那R.S.2,......R.桑)。
。
。
使用说明和限制:
距离输入参数值(距离
)必须是编译时常数。例如,要使用Minkowski距离,包括编码器.Constant('Minkowski')
在里面- args.
的价值Codegen.
。
距离输入参数值(距离
)不能是自定义距离功能。
生成的代码Pdist.
用途议案
(MATLAB编码器)要创建在生成的代码中的支持的共享内存多核平台上并行运行的循环。金宝app如果您的编译器不支持打开的多处理(OpenMP)应用金宝app程序界面或禁用OpenMP库,马铃薯®编码器™对待议案
- 乐队为了
- 砍伐。要查找支持的编译金宝app器,请参阅金宝app支持的编译器。要禁用OpenMP库,请设置EnableOpenmp.
配置对象的属性错误的
。有关详细信息,请参阅coder.codeConfig
(MATLAB编码器)。
有关代码生成的更多信息,请参阅代码生成简介和一般代码生成工作流程。
使用说明和限制:
支持的距金宝app离输入参数值(距离
)对于优化的CUDA代码是'euclidean'
那'squareduclidean'
那'seuclidean'
那'城市街区'
那'minkowski'
那'chebbychev'
那'余弦'
那'相关性'
那'汉明'
, 和'jaccard'
。
距离
不能是自定义距离功能。
距离
必须是编译时间常数。
您单击了与此MATLAB命令对应的链接:
在MATLAB命令窗口中输入它来运行命令。Web浏览器不支持MATLAB命令。金宝app
您还可以从以下列表中选择一个网站:
选择中国网站(以中文或英文)以获取最佳网站性能。其他MathWorks国家网站未优化您的位置。