How to select elements in an array that are in sequence?

2 visualizaciones (últimos 30 días)
I have a dynamic array which goes like this [1 2 3 4 31 32 33 34 35 36 37 38 39 40 41 42 56 57 58 59]. Where there is a larger set of elements in sequence (31 to 42) and smaller sets of elements (1 to 4 and 56 to 59). And these values change for every run.
I want to able to select the larger set of elements in sequence. Here, (31 to 42). Is there any way I can do that?

Respuesta aceptada

Azzi Abdelmalek
Azzi Abdelmalek el 17 de Jun. de 2016
a=[1 2 3 4 31 32 33 34 35 36 37 38 39 40 41 42 56 57 58 59]
id=[1 diff(a)]==1
ii1=strfind([0 id],[0 1])
ii1(2:end)=ii1(2:end)-1
ii2=strfind([id 0],[1 0])
[~,jd]=max(ii2-ii1)
out=a(ii1(jd):ii2(jd))
  3 comentarios
Azzi Abdelmalek
Azzi Abdelmalek el 17 de Jun. de 2016
How it doesn't work?
Soumyatha Gavvala
Soumyatha Gavvala el 17 de Jun. de 2016
Thank you it works! I just had to use transpose to change the array dimensions.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Logical en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by