SMH
我有一个向量,我需要知道是否有五个连续的数字值增加(排序)。我找到了一个解决方案,但我确信还有另一种解决方案会更有效。有什么帮助吗?
我的代码:
A = [10 4 1 2 3 4 1 2];
for i =1 :length(A)-5
temp = A(i:i+5);
sor(i) = issorted(temp);
end
路易斯·门多
使用diff
于计算的变化和conv
积累在一个窗口n=5
连续值:
n = 5;
result = any(conv(double(diff(A)>0), ones(1,n), 'valid')==n);
如果满足条件,则变量result
为1
(true
),否则为0
(false
)。
您可能需要替换>
为>=
。
如果您需要知道连续正变化的每次运行的起始索引n
,请使用find
代替any
:
starts = find(conv(double(diff(A)>0), ones(1,n), 'valid')==n);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
编辑于
我来说两句