我有一个矢量'A'并且基于这个矢量'for loop'和'filter'看起来像是常量增量
A= [1:1:500]'; % random
for i= min(A):10:max(A);
filter = A>=i & A<=i+10 ; % upper limit here is according to constant increment
end
现在,如果我需要以不规则的增量来改变'i',那么'过滤器'将如何根据'???'进行调整,如'???'所示。
for i= [(min(A):10:100),(100:20:200),(200:40:max(A))];
filter = A>=i & A<=i+??? ; % i do not know how to set upper limit here according to increment
end
它基于迭代获得'过滤器'。因为'过滤'被定义为
filter = A>=i & A<=i+iterations
因此,在非常规迭代的情况下,我该如何进行? 它可以进一步解释,如果我们扩展'i',它将如下所示
i= [(min(A):10:100),(100:20:200),(200:40:max(A))]
i =
Columns 1 through 19
1 11 21 31 41 51 61 71 81 91 100 120 140 160 180 200 200 240 280
Columns 20 through 24
320 360 400 440 480
现在'过滤器'应该是1到11,11到21,.....,100到120,120到140,...... 440到480.
答案 0 :(得分:1)
如何使用简单的循环索引,然后简单地索引到过滤器限制数组的元素?
E.g。像这样:
helper = [(min(A):10:100),(100:20:200),(200:40:max(A))]
for i=1:numel(helper)-1;
filter = A>=helper(i) & A<=helper(i+1) ; % i do not know how to set upper limit here according to increment
end
顺便说一句,你可能想要详细说明这个的更大背景。 这似乎是相似的,例如直方图。这种基于循环的手动方法可以通过更快/更容易阅读的方式进行替换。
答案 1 :(得分:0)
你可以做那样的事情。但我确信有更好的方法。
DefautIter = 10;
OldI = -9;
for i= [(min(A):10:100),(100:20:200),(200:40:max(A))];
iteration = i - OldI;
OldI = i;
filter = A>=i & A<=i+iteration ;
end