How to find increasing data points in an array?
3 views (last 30 days)
There's an array of random elements A=[2 1 4 2 6 7 8 10 12 14 16 18 20 22 24 12 10 9 11 8 ] now here from n=5 the value sarts increasing till n=15 position. My target is to find this increasing data points in the array and determine their position and remove those data points as well. I have already tried with diff function but I am not getting the results which I want. How can I do it? if someone say it would be of really great help.
Walter Roberson on 7 Dec 2022
A=[2 1 4 2 6 7 8 10 12 14 16 18 20 22 24 12 10 9 11 8 ]
diffA = diff(A)
start = find(diffA > 0,1);
Now start might be empty (if no elements are increasing anywhere). If it is not empty then it is the first place in the array where you have increasing elements. You can then search diffA starting from start+1 looking for the first place that the difference is <= 0. That first location is where the run of increasing values ends.
Hint: if you find(subset_of_diffA <= 0, 1) where subset_of_diffA is extracted from diffA... and you adjust the output result to take into account that the subset does not start until after start -- and you take into account that the result of that second find() might be empty because there might turn out not to be any places where the results stop increasing...