matlab - 两个结构的唯一点对之间的最小欧氏距离

matlab - minimum euclidian distances between unique pais of points of two structures

我在一个结构的 6 个点和第二个结构的 5 个点之间有这个距离矩阵:

a = [2.565  0.394   2.927   2.774   1.600;
    0.402   1.950   3.272   2.086   0.985;
    2.965   3.250   1.720   0.841   2.305;
    2.797   2.050   0.830   0.829   1.585;
    3.865   2.662   1.246   2.086   2.634;
    1.592   0.977   2.305   1.579   0.274]

我需要点之间的最小距离。有时我在另一个结构的两点之间得到一个点。 0.274 0.394 0.402 0.830 0.829 这意味着我将得到第 4 点(来自 6 点结构)最接近来自其他结构的第 3 点和第 4 点。我不允许有一个点最接近另外两个点。 我如何获得这些接近点的独特对? 我想我应该验证连续的前 2 个最小值之间是否存在微小差异。有问题的点总是在其他两个点的中间。 我需要得到 0.274 0.394 0.402 0.830 0.841(见答案 1)。 我的原始代码是:

for i = 1 : 6
    mins(i) = min(a(i, :));
end
mins = sort(mins);
mins = mins(1 : 5);

谢谢。

非常感谢烧杯,我希望这个问题能得到另一个答案,

[pairs,a1,a2]=matchpairs(a,1,'min')
pairs =
     2     1
     1     2
     4     3
     3     4
     6     5
a1 =
     5
a2 =
  0×1 empty double column vector

我也希望有人解释其他输出的含义以及它们什么时候有用。