发现4个值的一个序列在没有循环的阵列 [英] Finding a sequence of 4 values in an array without loop
本文介绍了发现4个值的一个序列在没有循环的阵列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我试图找到递增值的数组(4个值)序列,而不为
或如果
。
例如,A = [8 9 1 3 7 9 18],输入为: 1 3 7 18
。
I'm trying to find a sequence of ascending values in an array (4 values) without for
or if
.
For example, A = [8 9 1 3 7 18 9], input will be: 1 3 7 18
.
任何方式做没有为
?
推荐答案
这会给你所有这些子序列的起始索引:
This will give you the starting indices of all such subsequences:
n = 4;
indices = find(conv(double(diff(A)>0), ones(1,n-1), 'valid')==n-1);
例如:
A = [8 9 1 3 7 18 9 10 11 12 5];
产生
indices =
3 7
所以子序列将 A(指数(1)+(0:N-1))
, A(指数(2)+ (0:N-1))
等
>> A(indices(1) + (0:n-1))
ans =
1 3 7 18
>> A(indices(2) + (0:n-1))
ans =
9 10 11 12
这篇关于发现4个值的一个序列在没有循环的阵列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文