我想找到一个数组超过某个值的索引,并且这个值是一个持续时间n超过的值。例如:
n = 5;
dat = [1,2,2,1.5,2,4,2,1,1,3,4,6,8,4,9];
在这里,我想首次发现'dat'超过2时持续时间大于n。所以,这里的解决方案应该得到一个答案:
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'超过或等于5超过或等于n次。
ans = 6
答案 0 :(得分: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
答案 1 :(得分: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