代码之家  ›  专栏  ›  技术社区  ›  user288609

给定向量a=[1,2,3.2,4,5]和向量a中的元素x=3,如何找到比x大的精确项?

  •  7
  • user288609  · 技术社区  · 14 年前

    在向量a中,如何找到比x大的精确项?

    2 回复  |  直到 14 年前
        1
  •  11
  •   gnovice    14 年前

    我不知道你说的“准确”是什么意思。这将为您提供 全部的 值大于 x :

    indices = find(a > x);
    

    假设 a 已排序,这将为您提供第一个索引(即大于的最小值)

    index = find(a > x,1);
    
        2
  •  1
  •   knedlsepp    9 年前

    如果你想计算这些位置的多个值 x ,您最好使用 histc 而不是遍历 在复杂性方面 历史的 O(n*log(n)) ,而循环方法 O(n^2)

    [~,I] = histc(x, [-Inf; a(:); Inf]);
    I(x==inf) = numel(a)+1;
    

    a 武断的

    a = 1:10;
    x = [5.5, 0.1, 2.3];
    

    将产生:

    I = [6     1     3]