# How to find the descending index in each row of a matrix?

2 views (last 30 days)
Marmar on 26 Feb 2018
Commented: Marmar on 26 Feb 2018
Hi there, I have data for about 2000 lakes through 11 days so I have a 2000x11 matrix. which I want to know for each lake (row) when the numbers become descending. Lets say my matrix is A ( it shows the first four rows of my matrix) and A is:
[26 26 25 25 25 25 25 25 25 6 3;
558 558 558 558 533 521 494 367 367 64 8;
214 212 210 210 182 156 106 73 73 41 9;
448 448 445 445 375 219 132 130 130 73 32]
Finally I want an index vector (2000x1) that shows me the index of the descending point for each row. Means I want my result for the example matrix A to be like matrix below:
3
5
2
3
Any idea is really appreciated.
##### 3 CommentsShow 1 older commentHide 1 older comment
jonas on 26 Feb 2018
Edited: jonas on 26 Feb 2018
Not the most elegant solution but it gets the job done:
[nrow ncol]=size(A)
B=diff(A');
[row col]=find(B<0)
for i=1:nrow
ind(i)=row(min(find(col==i)))+1
end
Marmar on 26 Feb 2018
This solution works as well. Thank you.

James Tursa on 26 Feb 2018
E.g., assuming there is always a decrease:
[~,x] = max(diff(A,1,2)<0,[],2);
result = x + 1;
If there is not a decrease, what would you want the code to produce?
##### 2 CommentsShow NoneHide None
Marmar on 26 Feb 2018
I want 1 for those row, but there is always a decrease.
Marmar on 26 Feb 2018
That works well. Thank you so much.

### Categories

Find more on Matrix Indexing 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!