Как найти приблизительные числа в двух матрицах? - PullRequest
0 голосов
/ 02 ноября 2019

Как найти приблизительные числа в двух матрицах? Например, Есть две матрицы

A=[1.567 1.679 1.366 ;
      2.467 3.587 6.134 ;
      3.497 5.877 9.465]

B=[3.134 5.100 7.555 ;
      7.465 4.715 4.267 ;
      2.347 4.111 4.503]

Так что в матрице A 2.467 близко к 2.347 в матрице B. Как я могу найти их по кодированию?

1 Ответ

1 голос
/ 03 ноября 2019

Создайте сетку из всех значений в 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
...