Highest value number in a repeating array of ascending numbers

2 vues (au cours des 30 derniers jours)
Elise Mangin
Elise Mangin le 19 Jan 2022
Commenté : Elise Mangin le 19 Jan 2022
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 commentaires
Stephen23
Stephen23 le 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 le 19 Jan 2022
This works great too, and I understand the logic behind it. Thank you!

Connectez-vous pour commenter.

Réponse acceptée

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

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Creating and Concatenating Matrices dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by