发现4个值的一个序列在没有循环的阵列 [英] Finding a sequence of 4 values in an array without loop

查看:105
本文介绍了发现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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆