MATLAB Answers

how to replace all elements with zeros after "ONE" (number) in every column of matrix???

1 view (last 30 days)
in each column of 2000*32 matrix there are so many "ONES" i want to replace all elements with zeros after first "ONE".
there might be so many "ONES" IN every column of matrix.
I want to replace after First "ONE" (ONE is number in column of matrix)

  0 Comments

Sign in to comment.

Accepted Answer

per isakson
per isakson on 8 Feb 2020
Try this
>> m = randi([0,1],[6,8])
m =
0 0 0 1 0 0 0 0
0 1 1 1 1 1 0 1
0 0 0 0 1 0 0 0
0 0 1 0 1 1 0 0
1 1 1 1 0 1 1 1
1 1 1 0 0 0 0 0
>> for jj = 1:8, r=find(m(:,jj)==1,1,'first'); m(r+1:6,jj)=0; end
>> m
m =
0 0 0 1 0 0 0 0
0 1 1 0 1 1 0 1
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
1 0 0 0 0 0 1 0
0 0 0 0 0 0 0 0
>>

More Answers (1)

Stephen Cobeldick
Stephen Cobeldick on 8 Feb 2020
>> mat = randi([0,1],[6,8])
mat =
1 0 0 0 0 1 0 0
1 0 0 1 0 0 0 1
0 0 1 0 0 0 1 1
0 0 0 0 1 0 0 1
1 1 1 0 0 0 1 0
1 1 0 0 0 0 0 1
>> out = mat .* (cumsum(mmat,1)==1)
out =
1 0 0 0 0 1 0 0
0 0 0 1 0 0 0 1
0 0 1 0 0 0 1 0
0 0 0 0 1 0 0 0
0 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0

Sign in to answer this question.