在排序向量中查找上限索引

Jor*_*ata 3 matlab vector

我在Matlab中有一个类似下面的向量.

 Columns 1 through 4

   0.160000000000000   0.208000000000000   0.244000000000000   0.268000000000000

  Column 5

   0.280000000000000

我想找到以下值的上限索引:

0.16230400000000
Run Code Online (Sandbox Code Playgroud)

我知道这个值在1°和2°索引之间,但我想找到上限,在这种情况下是索引2,即使最接近的值是索引1.如何在没有循环的Matlab中得到它?

我发现以下方法找到最接近的值,但我总是需要上限.

[c ind] = min(abs(probCum-codComp));
Run Code Online (Sandbox Code Playgroud)

H.M*_*ter 5

您可以通过计算有多少条目小于感兴趣的值增加一个来获得上限的索引:

id = sum(value < data)+1; 
Run Code Online (Sandbox Code Playgroud)

请注意,如果所有元素都小于感兴趣的值,data(id)则会返回错误,因为id它大于data.