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 に答える