0

配列が特定の値を超え、この値が期間nの値を超えた場合のインデックスを見つけたいと思います。たとえば:

n = 5;
dat = [1,2,2,1.5,2,4,2,1,1,3,4,6,8,4,9];

ここで、「dat」がnを超える期間で初めて2を超えたときを見つけたいと思います。したがって、ここでの解決策は答えにつながるはずです:

ans = 10

もう一つの例:

n = 7;
dat = [1,1,2,3,4,5,6,7,8,9,9,6,4,3,2,4,6,7,7,5];

'dat'がn回以上5を超えるか等しい最初の時間を見つけます。

ans = 6

4

2 に答える 2

2
n = 5;
m = 2;
dat = [1,2,2,1.5,2,4,2,1,1,3,4,6,8,4,9];

c = conv(double(dat >= m), ones(1, n))
%I think you can also do
%  c = conv((dat >= m)*1, ones(1, n))

min(find(c == n)) - n + 1
于 2013-03-20T09:46:16.563 に答える
1
n=5
x=2;
dat = [1,2,2,1.5,2,4,2,1,1,3,4,6,8,4,9];
vec= cumsum(dat>=x);
ind=find(vec>=n);
ind=dat(ind(1));

ind答え10が含まれます

于 2013-03-20T09:49:57.040 に答える