I have a huge matrix M such that each row is ascending ordered. I find if/where each row exceeds a certain threshold by looking at the last column of cumsum(M>threshold,2).
Rows that do not exceed threshold are left unchanged. For each row that does exceed the threshold, I find the first element on that row that's larger than the threshold and set it to -1. Note that these elements will be on different columns. Then, all elements between -1 and the end of the row are set to zero. For example,
M=[1 2 3 4; 1 4 6 8; 2 6 7 9]; threshold=5;
I need
result=[1 2 3 4; 1 4 -1 0; 2 -1 0 0];
Thanks!
Best Answer