该函数计算两个样本集之间的成对距离,并产生一个欧几里得或马氏距离的方阵。代码通过向量化得到了充分优化。因此,它比内置函数pdist快得多。
当提供两个矩阵A和B作为输入时,该函数计算它们之间的欧氏距离的平方。如果提供了一个额外的正定矩阵M,则计算马氏距离。
如果只提供一个矩阵A,该函数计算A中向量之间的两两平方欧氏距离。在这种情况下,它相当于matlab统计工具箱中pdist函数的平方,但速度要快得多。
示例代码:
d = 1000; n1 = 5000; n2 = 6000;
兰德(d, n1); A = B =兰德(d, n2);
M =兰德(d, d); M = M * M ' +眼(d);
D1 = sqdist (A, B);
D2 = sqdist(一个);
D3 = sqdist (A、B、M);
详细的解释可以在以下博文中找到:
http://statinfer.wordpress.com/2011/11/14/efficient-matlab-i-pairwise-distances/
此函数现在是PRML工具箱的一部分(//www.tatmou.com/matlabcentral/fileexchange/55826-pattern-recognition-and-machine-learning-toolbox).
引用作为
莫陈(2022)。成对距离矩阵(//www.tatmou.com/matlabcentral/fileexchange/24599-pairwise-distance-matrix), MATLAB中央文件交换。检索.