我有两个已排序的矩阵A和B.对于A的第1列中的所有值,如何在矩阵B中找到最接近的较低值和较大值? (没有门槛)
答案 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范围会发生什么。