两组观测值之间的成对距离
计算观察成对之间的欧几里德距离,并使用距离向量转换为矩阵squareform
.
用三个观察值和两个变量创建一个矩阵。
rng (“默认”)%的再现性X =兰德(3 2);
计算欧氏距离。
D = pdist (X)
D =1×30.2954 1.0670 0.9448
成对的距离按(2,1),(3,1),(3,2)排列。你可以很容易地确定观测之间的距离一世
和j
通过使用squareform
.
Z = squareform (D)
Z =3×30 0.2954 1.0670 0.2954 0 0.9448 1.0670 0.9448 0
squareform
返回一个对称矩阵Z (i, j)
对应于观察之间的成对距离一世
和j
.例如,你可以找到观察2和3之间的距离。
Z(2、3)
ans = 0.9448.
经过Z.
到了squareform
函数来重现Pdist.
功能。
y = squareform (Z)
y =1×30.2954 1.0670 0.9448
产出y
从squareform
和D.
从Pdist.
都是一样的。
用三个观察值和两个变量创建一个矩阵。
rng (“默认”)%的再现性X =兰德(3 2);
用默认指数2计算Minkowski距离。
D1 = pdist (X,'minkowski')
D1 =1×30.2954 1.0670 0.9448
计算指数为1的Minkowski距离,它等于城市街区距离。
D2 = pdist (X,'minkowski', 1)
D2 =1×30.3721 1.5036 1.3136
d3 = pdist(x,“cityblock”)
D3 =1×30.3721 1.5036 1.3136
定义一个忽略坐标的自定义距离函数南
值,并使用自定义距离函数计算成对距离。
用三个观察值和两个变量创建一个矩阵。
rng (“默认”)%的再现性X =兰德(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 =总和(~ isnan (sqdx), 2);%不包含NAN的成对数nstar(nstar == 0)= nan;%如果所有对都包含NaN,则返回NaND2squared =总和(sqdx 2“omitnan”)。* n./nstar;%修正缺失的坐标D2 =√D2squared);
计算距离nanyucdist.
通过传递函数句柄作为输入参数Pdist.
.
D2 = pdist (X, @naneucdist)
D2 =1×30.3974 1.1538 0.9448
X
-输入数据输入数据,指定为大小的数字矩阵m——- - - - - -N.行对应于单个观察结果,列对应于单个变量。
数据类型:单
|双
距离
-距离度量如下表所述,指定为字符向量,字符串标量或函数句柄的距离度量。
价值 | 描述 |
---|---|
'euclidean' |
欧氏距离(默认)。 |
'squareduclidean' |
平方欧氏距离。(提供这个选项只是为了提高效率。不满足三角形不等式) |
“seuclidean” |
标准化的欧氏距离。每个观测值之间的坐标差通过除以对应的标准差元素进行缩放, |
“mahalanobis” |
使用样本协方差的Mahalanobis距离 |
“cityblock” |
城市街区的距离。 |
'minkowski' |
Minkowski距离。默认指数为2.使用 |
'chebbychev' |
Chebychev距离(最大坐标差异)。 |
'余弦' |
1减去点间夹角的余弦值(当作向量处理)。 |
“相关” |
一个减去点之间的样本相关性(作为值序列)之间的样本相关性。 |
'汉明' |
汉明距离,是不同坐标的百分比。 |
“jaccard” |
1减去Jaccard系数,它是不同的非零坐标的百分比。 |
“枪兵” |
一个减去样本Spearman的观察之间的秩相关性(视为值序列)。 |
@ |
自定义距离功能句柄。距离功能具有表单 函数d2 = distfun(zi,zj)%计算距离...
如果数据不是稀疏的,通常可以使用内置的距离而不是函数句柄更快地计算距离。 |
定义,请参阅距离度量.
当你使用“seuclidean”
那'minkowski'
,或“mahalanobis”
,你可以指定一个额外的输入参数DistParameter
控制这些指标。您还可以使用这些指标,就像使用缺省值为的其他指标一样DistParameter
.
例子:'minkowski'
DistParameter
-距离度量参数值距离度量参数值,指定为正标量,数字矢量或数字矩阵。此参数仅在指定时有效距离
作为“seuclidean”
那'minkowski'
,或“mahalanobis”
.
如果距离
是“seuclidean”
那DistParameter
是每个维度的比例因子向量,指定为正向量。默认值为std(x,'omitnan')
.
如果距离
是'minkowski'
那DistParameter
为闵可夫斯基距离的指数,指定为一个正标量。缺省值是2。
如果距离
是“mahalanobis”
那DistParameter
是协方差矩阵,指定为数值矩阵。默认值为X (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.
变成一个对称矩阵squareform
功能。Z = squareform (D)
返回一个m——- - - - - -m矩阵Z (i, j)
对应于观察之间的成对距离一世和j.
如果观察一世或j包含南
s,那么相应的价值D.
是南
对于内置距离函数。
D.
通常用作聚类或多维缩放中的异化矩阵。有关详细信息,请参阅分层群集和函数参考页cmdscale
那COPHENET.
那连锁
那mdscale.
,OptimAlleafOrder.
.这些功能需要D.
作为输入参数。
距离度量是定义两个观测值之间距离的函数。Pdist.
万博1manbetx支持各种距离指标:欧几里德距离,标准化的欧几里德距离,马哈拉诺比斯距离,城市块距离,Minkowski距离,Chebychev距离,余弦距离,相关距离,汉明距离,Jactard距离和矛盾距离。
给定一个m——- - - - - -N数据矩阵X
,被视为m(1-by-N)行向量X1那X2、……Xm,向量之间的不同距离XS.和XT.定义如下:
欧氏距离
欧几里德距离是闵可夫斯基距离的一种特殊情况,其中P.= 2.
标准化的欧几里得距离
在哪里V.是N——- - - - - -N对角线矩阵谁j第对角元素为(S.(j)))2,在那里S.是每个维度的比例因子向量。
Mahalanobis距离
在哪里C是协方差矩阵。
城市街区的距离
城市街区距离是Minkowski距离的特殊情况,在哪里P.= 1.
闵可夫斯基距离
对于特殊情况P.= 1,闵可夫斯基距离表示城市街区的距离。对于特殊情况P.= 2,闵可夫斯基距离给出欧几里德距离。对于特殊情况P.=∞,闵可夫斯基距离等于切比雪夫距离。
Chebychev距离
切比雪夫距离是闵可夫斯基距离的特例,其中P.=∞.
余弦距离
相关距离
在哪里
和 .
汉明距离
jaccard距离
斯皮尔曼的距离
在哪里
R.sj是军衔Xsj接管X1j那X2j, ...X乔丹,如图所示tiedrank
.
R.S.和R.T.是坐标 - 明智的等级矢量XS.和XT., IE。,R.S.=(R.S.1那R.S.2, ...R.sn)。
.
.
用法说明和限制:
距离输入参数值(距离
)必须为编译时常量。例如,要使用闵科夫斯基距离,包括编码器.Constant('Minkowski')
在- args.
的价值codegen
.
距离输入参数值(距离
)不能是自定义距离功能。
生成的代码Pdist.
使用议案
(MATLAB编码器)要创建在生成的代码中的支持的共享内存多核平台上并行运行的循环。万博1manbetx如果您的编译器不支持打开的多处理(OpenMP)应用万博1manbetx程序界面或禁用OpenMP库,MATLAB®编码器™对待议案
- 乐队为了
循环。要查找支持的编译万博1manbetx器,请参见万博1manbetx支持编译器.要禁用OpenMP库,请设置EnableOpenMP
属性设置为错误的
.有关详细信息,请参阅编码器。CodeConfig
(MATLAB编码器).
有关代码生成的更多信息,请参阅代码生成简介和一般代码生成工作流程.
用法说明和限制:
支持的距万博1manbetx离输入参数值(距离
)的优化CUDA代码'euclidean'
那'squareduclidean'
那“seuclidean”
那“cityblock”
那'minkowski'
那'chebbychev'
那'余弦'
那“相关”
那'汉明'
,“jaccard”
.
距离
不能是自定义距离功能。
距离
必须是编译时间常数。
您单击了与此MATLAB命令对应的链接:
通过在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。万博1manbetx
你也可以从以下列表中选择一个网站:
选择中国网站(以中文或英文)以获取最佳网站性能。其他MathWorks国家网站未优化您的位置。