Создайте сетку из всех значений в A и всех значений в B, чтобы мы могли их сравнить:
[Amesh,Bmesh] = meshgrid(A(:),B(:))
Теперь найдите абсолютное значение разницы:
absdiff = abs(Amesh-Bmesh)
Это матрица абсолютной разности между каждым значением в A и каждым значением в B. Таким образом, минимальное значение в этой таблице - ваше самое близкое соответствие между значениями в A и B. Чтобы программно найти это значение:
[x,y] = find(absdiff == min(absdiff(:)))
x =
3
y =
2
Это вычисляет минимальное значение этой матрицы, а затем находит позицию x / y этого значения. В этом случае x - это индекс в матрице B, а y - это индекс в матрице A.
>> A(y)
ans =
2.4670
>> B(x)
ans =
2.3470