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