如何找到两个矩阵中的近似数?
How to find the approximate numbers in two matrix?
如何求两个矩阵中的近似数?
例如,
有两个矩阵
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 接近于 B 矩阵中的 2.347。
如何通过编码找到它们?
创建 A 中所有值和 B 中所有值的网格,以便我们可以比较它们:
[Amesh,Bmesh] = meshgrid(A(:),B(:))
现在求差的绝对值:
absdiff = abs(Amesh-Bmesh)
这是 A 中每个值与 B 中每个值之间绝对差值的矩阵。因此此 table 中的最小值是 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
如何求两个矩阵中的近似数? 例如, 有两个矩阵
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 接近于 B 矩阵中的 2.347。 如何通过编码找到它们?
创建 A 中所有值和 B 中所有值的网格,以便我们可以比较它们:
[Amesh,Bmesh] = meshgrid(A(:),B(:))
现在求差的绝对值:
absdiff = abs(Amesh-Bmesh)
这是 A 中每个值与 B 中每个值之间绝对差值的矩阵。因此此 table 中的最小值是 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