To Count the reversal of a series of numbers in a column or row.
1 view (last 30 days)
Show older comments
I have a data with the first column as follows" A = [1 1 1 1 2 2 2 2 3 3 3 4 4 3 3 2 2 2 3 3 3 3 4 4 4 5 5 5 5 6 6 6 6 6 7 7 7 7 8 8 8 7 7 6 6 7 7 7 8 8 8 9 9 9 9 ]; I want to count how many times the number roll back, means, form the beginning the number keep on increasing and after 4 it reversed again after 2 it start increasing. This thing happen after 7 also. So how can I make a code to count how many times it reversed? For example, in this case , the data A reversed two times. In my original data, I have almost 1000 or even more data with several reversals.
0 Comments
Accepted Answer
Jos (10584)
on 14 Dec 2017
dA = diff(A) ;
Nreversals = sum(diff(dA(dA~=0))<0)
2 Comments
Jos (10584)
on 16 Dec 2017
Ok! Corrected code:
dA = sign(diff(A)) ;
Nreversals = sum(diff(dA(dA~=0))<0)
Note there are 15 small reversals in column 4 ...
More Answers (0)
See Also
Categories
Find more on Dynamic System Models in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!