如果数字a位于x(i)和x(i + 1)之间,它应返回最低索引i。我知道写一个能做到这一点的函数并不难,但是有没有内置的Matlab函数呢?
假设矢量元素已经排序,那么我猜是一个简单的搜索O(logn)但如果元素没有经过排序而没有排序,有没有更好的方法呢?
提前致谢!
答案 0 :(得分:3)
逻辑指数非常适合这种比较:
x = [6 2 6 7 3 5];
a = 4;
find(a > x(1:end-1) & a < x(2:end), 1)
ans = 2
答案 1 :(得分:0)
尝试
a=rand(1);
b=rand(1,10);
c=a-b;
find(c(2:end).*c(1:end-1)<0,1)