Find the first incidence of 1 in a logical vector and replace all other 1s by zero

1 view (last 30 days)
I need to find the first incidence of 1 in a logical vector and replace all other 1s by zero.
For example, I have a logical vector like this: V = [ 0 1 0 0 1 0 1 ] and I need a function/code that will tell me that will yield V=[0 1 0 0 0 0 0]..
Since I am having a matrix (10000,35) size, how to run this code for each row?

Accepted Answer

madhan ravi
madhan ravi on 23 Jul 2020
Wanted = (cumsum(matrix, 2) == 1) .* matrix

More Answers (1)

Walter Roberson
Walter Roberson on 23 Jul 2020
diff([zeros(size(YourMatrix,1),1),~cumprod(~YourMatrix,2)],[],2)

Categories

Find more on Characters and Strings 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!