0

如果数字 a 位于 x(i) 和 x(i+1) 之间,它应该返回最低索引 i。我知道编写一个可以做到这一点的函数并不难,但是有没有内置的 Matlab 函数呢?

假设向量元素已排序,我猜这将是一个微不足道的搜索 O(logn) 但如果元素没有经过排序就没有排序,有没有更好的方法呢?

提前致谢!

4

2 回答 2

3

逻辑索引非常适合这种比较:

x = [6 2 6 7 3 5];
a = 4;
find(a > x(1:end-1) & a < x(2:end), 1)
ans =  2
于 2012-09-03T23:47:20.660 回答
0

尝试

  a=rand(1);
  b=rand(1,10);
  c=a-b;
  find(c(2:end).*c(1:end-1)<0,1)
于 2012-09-03T22:40:54.493 回答