找到哪个向量的值最接近另一个向量

时间:2013-12-11 14:13:51

标签: matlab

我有一个坐标矢量:

a=[1 2]

我想找到以下三个坐标中的哪一个最接近a

b=[1 3; 4 2; 4 1]

有一种简单的方法吗?

我尝试从a中减去b,但我不知道如何从输出中选择最低值

我想计算|| a-b || ^ 2,所以假设a和b是2维轴上的坐标。我想找到b中最接近

的点

4 个答案:

答案 0 :(得分:3)

使用pdist计算距离,min计算距离。

答案 1 :(得分:1)

假设您的意思是欧几里德距离,您可以使用hypot,然后使用min的第二个输出:

[~, ind] = min(hypot(b(:,1)-a(1), b(:,2)-a(2)));

结果ind给出了最小化距离的b行的索引。

答案 2 :(得分:0)

可以使用'min'功能选择最低值。

  [~,index] = min(sum(abs(bsxfun(@minus,b,a)),2))

假设您按照L_1规范定义“最接近”。

答案 3 :(得分:-1)

norm(a - b)将计算两点之间的距离