我有两个矩阵。 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
答案 0 :(得分:3)
试试这个:
dist = abs(bsxfun(@minus,G2,G1))
[~,col] = min(dist,[],2);
Result = diag(G2(:,col))