Highest value number in a repeating array of ascending numbers

1 visualización (últimos 30 días)
Hi everone,
The data I'm working with is given as a list of numbers that always starts at 1 and increases consecutively to some value, then starts back over at 1 again. Each individual number has its own row in a single column.
For example
1
2
3
1
2
3
4
5
1
2
In this list there are three groups of interest: the group 1-3 (3 max number), 1-5 (5 max number), and 1-2 (2 max number).
I am trying to write a program that spits out the maximum value of each group of consecutive numbers. I've tried a few strategies but am having trouble formatting the data. Any help is very much appreciated!!
  2 comentarios
Stephen23
Stephen23 el 19 de En. de 2022
A = [1;2;3;1;2;3;4;5;1;2;3;4;5;6;1;2];
B = A([diff(A)<0;true])
B = 4×1
3 5 6 2
Elise Mangin
Elise Mangin el 19 de En. de 2022
This works great too, and I understand the logic behind it. Thank you!

Iniciar sesión para comentar.

Respuesta aceptada

DGM
DGM el 19 de En. de 2022
If those simple rules can be depended upon, then
A = [1;2;3;1;2;3;4;5;1;2;3;4;5;6;1;2];
seqpeaks = A(circshift(A==1,-1))
seqpeaks = 4×1
3 5 6 2
  1 comentario
Elise Mangin
Elise Mangin el 19 de En. de 2022
This works beautifully!!! Thank you so much, I was unaware of this circshift fuction.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

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

Community Treasure Hunt

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

Start Hunting!

Translated by