从以下示例:
x = 1 + (10-1)*rand(1,100);
x(12:22) = 20 + (30-20)*rand(1,11);
x(70:94) = 20 + (30-20)*rand(1,25);
在这里,我正在尝试几件事。首先,我试图找到大于 20 的第一个值的行号,其中连续值 >20 的数量超过 24。所以在这个例子中,我想返回行号 70。
我可以通过以下方式做到这一点:
y = x > 20;
k = [strfind([~y(1),y],[0 1]);strfind([y,~y(end)],[1 0])];
idx = k(1,diff(k) + 1 > 24);
但是,我还想将第一组值(不包括超过 24 个 > 20 的连续值)替换为 nan。我怎样才能做到这一点?