找出与给定点最近的点

时间:2016-02-09 12:11:43

标签: matlab matrix

我有两个矩阵。 G1

G1 =
   80.00
   79.43
   78.89
   78.38
   77.90
   77.45
   77.03
   76.63

G2 =     NaN       NaN       NaN
         NaN       NaN       NaN
         NaN       79.11     NaN
         NaN       78.64     NaN
         NaN       78.13     78.14
         77.46     NaN       77.66
         77.07     77.08     NaN
         76.74     NaN       NaN

我希望结果矩阵的大小为8 * 1。此外,应将G2矩阵元素与G1进行比较,并将G2到G1的最近元素填充到所需的矩阵中。例如,G2行的第一个有NaN,所以它保持NaN。 G2的第4行有两个值,这个值应该与G1的第4个元素进行比较,最近的值应该在结果矩阵中填充。当只有一个值时,它应该只保留这样的值。如果有两个以上的值,则应在矩阵中填充最接近的值。

以下是所需的输出。如何更动态地做到这一点。我只是手动完成。

  Result =   NaN
             NaN
             79.11
             78.64
             78.14
             77.46
             77.07
             76.744

1 个答案:

答案 0 :(得分:3)

试试这个:

dist = abs(bsxfun(@minus,G2,G1))
[~,col] = min(dist,[],2);
Result = diag(G2(:,col))