在MATLAB中查找值越来越近的元素

时间:2013-09-23 13:39:55

标签: matlab search

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

1 个答案:

答案 0 :(得分: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将是一个双精度值,显示B中A的每个元素的位置。例如,2.2表示值在元素2和元素3之间。实际上,它是20%的路径元素2到元素3.因此floor(idx)是较低的元素,ceil(idx)是较高的元素。

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