Highest value number in a repeating array of ascending numbers

1 Ansicht (letzte 30 Tage)
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 Kommentare
Stephen23
Stephen23 am 19 Jan. 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 am 19 Jan. 2022
This works great too, and I understand the logic behind it. Thank you!

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

DGM
DGM am 19 Jan. 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 Kommentar
Elise Mangin
Elise Mangin am 19 Jan. 2022
This works beautifully!!! Thank you so much, I was unaware of this circshift fuction.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by