我需要一种方法来找出矢量的哪些元素在给定的区间内(避免循环)。
对矢量进行排序并定期间隔,例如:
vector = [0,1,2,3,4,5,6,7,8,9]
箱子的下边界和上边界是已知的。箱具有相同的宽度并且有规律地间隔开。它们之间可能重叠或有间隙,例如:
l_bnds = [.5, 2.8, 5.1, 7.4, 9.7]
u_bnds = [ 2, 4.3, 6.6, 8.9, 11.2]
我想要的输出是一个数组,其中向量中的元素索引是每个bin的一部分(并且-1或者要填充)。 n_rows:bin的数量,n_cols:bin中的最大元素数。在上述情况中:
1 2
3 4
6 -1
8 -1
-1 -1
应该可以选择是否考虑等于边界的向量元素(即,间隔可以定义为(l,u)
,(l,u]
,[l,u)
或{{1}上面的输出假定为[l,u])
。
在箱子上循环并检查矢量在各自边界之间的位置很容易。但是,矢量和箱数可能非常大,所以我正在寻找一种避免循环的方法。
有什么想法吗?