-1

我有两个排序矩阵 A 和 B。对于 A 的第 1 列中的所有值,我如何在矩阵 B 中找到最近的较低和较大值?(没有门槛)

4

1 回答 1

1

我会使用interp1,但通常以相反的方式使用。将您的 B 矩阵视为一个查找表。您正在尝试查找给定值的元素的索引。例如:

% Sample data
B = sort(rand(10,1));
A = sort(rand(5,1));

idx = interp1(B, 1:size(B), A, 'linear', 'extrap');

idx 将是一个双精度值,显示 A 的每个元素在 B 中的位置。例如,2.2 表示该值在元素 2 和元素 3 之间。实际上,它是从元素 2 到元素 2 的 20%元素3。floor(idx)较低的元素ceil(idx)也是如此,较高的元素也是如此。

注意事项:B 中的重复元素会产生问题。边缘条件可能很混乱。你必须自己解决这些问题。看看超出 B 范围的 A 元素会发生什么。

于 2013-09-23T13:51:49.777 回答