Simple Matrix Reduction Question. Ones and Zeros.

2 views (last 30 days)
I have a NxM matrix full of ones and zeros. Each row (1:N) has exactly one, one, somewhere along of the columns. I want to make a matrix Nx1 which shows which columns the ones appeared in. Example:
A = [ 0 0 0 1; 1 0 0 0; 0 1 0 0; 0 0 1 0]
B = [ 4 ; 1 ; 2 ; 3 ]
Should be very simple?

Accepted Answer

Birdman
Birdman on 1 Apr 2020
Edited: Birdman on 1 Apr 2020
[rows,cols]=find(A==1);
[C,I]=sort(rows);
B=cols(I)

More Answers (1)

Stephen23
Stephen23 on 1 Apr 2020
Simpler:
>> [B,~] = find(A.')
B =
4
1
2
3

Categories

Find more on Resizing and Reshaping Matrices 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!