pdist2
Compute pairwise distance between two sets of vectors.
D = pdist2 (X, Y)
calculates the euclidean distance
between each pair of observations in X and Y. Let X be an
matrix representing points in -dimensional space
and Y be an matrix representing another set of points in the
same space. This function computes the distance matrix D,
where D(i,j)
is the distance between X(i,:)
and
Y(j,:)
.
D = pdist2 (X, Y, Distance)
returns the
distance between each pair of observations in X and Y using the
metric specified by Distance, which can be any of the following options.
"euclidean" | Euclidean distance. | |
"squaredeuclidean" | Squared Euclidean distance. | |
"seuclidean" | standardized Euclidean distance. Each coordinate difference between the rows in X and the query matrix Y is scaled by dividing by the corresponding element of the standard deviation computed from X. A different scaling vector can be specified with the subsequent DistParameter input argument. | |
"mahalanobis" | Mahalanobis distance, computed using a positive definite covariance matrix. A different covariance matrix can be specified with the subsequent DistParameter input argument. | |
"cityblock" | City block distance. | |
"minkowski" | Minkowski distance. The default exponent is 2. A different exponent can be specified with the subsequent DistParameter input argument. | |
"chebychev" | Chebychev distance (maximum coordinate difference). | |
"cosine" | One minus the cosine of the included angle between points (treated as vectors). | |
"correlation" | One minus the sample linear correlation between observations (treated as sequences of values). | |
"hamming" | Hamming distance, which is the percentage of coordinates that differ. | |
"jaccard" | One minus the Jaccard coefficient, which is the percentage of nonzero coordinates that differ. | |
"spearman" | One minus the sample Spearman’s rank correlation between observations (treated as sequences of values). | |
@distfun | Custom distance function handle. A distance
function of the form function D2 = distfun (XI, YI) ,
where XI is a vector containing a single observation in
-dimensional space, YI is an matrix containing an
arbitrary number of observations in the same -dimensional space, and
D2 is an vector of distances, where (D2k) is
the distance between observations XI and (YIk,:) . |
D = pdist2 (X, Y, Distance, DistParameter)
returns the distance using the metric specified by Distance and
DistParameter. The latter one can only be specified when the selected
Distance is "seuclidean"
, "minkowski"
, and
"mahalanobis"
.
D = pdist2 (…, Name, Value)
for any previous
arguments, modifies the computation using Name-Value parameters.
D = pdist2 (X, Y, Distance, "Smallest"
,
K)
computes the distance using the metric specified by
Distance and returns the K smallest pairwise distances to
observations in X for each observation in Y in ascending order.
D = pdist2 (X, Y, Distance, DistParameter,
"Largest"
, K)
computes the distance using the metric specified
by Distance and DistParameter and returns the K largest
pairwise distances in descending order.
[D, I] = pdist2 (…, Name, Value)
also
returns the matrix I, which contains the indices of the observations in
X corresponding to the distances in D. You must specify either
"Smallest"
or "Largest"
as an optional Name-Value
pair pair argument to compute the second output argument.
See also: pdist, knnsearch, rangesearch
Source Code: pdist2