create binary 0 and 1

2 views (last 30 days)
Quynh tran
Quynh tran on 19 May 2017
Edited: James Tursa on 19 May 2017
Dear all,
I have matrix of binary with n=5
A=[0 0 0 0 1
0 0 0 1 0
0 0 1 0 0
....
1 1 1 1 1]
but I only want to take a submatrix with 3 number 1 inside
subA=[ 0 1 1 0 1
1 0 1 0 1
0 1 1 1 0
........]
and
subB=[0 0 0 0 1
0 0 0 1 0
0 0 1 0 0
0 1 0 0 0
1 0 0 0 0
0 0 0 1 1
.....
0 1 1 0 1
1 0 1 0 1
0 1 1 1 0
........]
. Couyld you help me? Thanks

Accepted Answer

James Tursa
James Tursa on 19 May 2017
Edited: James Tursa on 19 May 2017
subA = A(sum(A,2)==3,:);
For subB it is not entirely clear to me what you want. Do you want the rows of A arranged so that all rows with one 1 come first, then all rows with two 1's, then all rows with three 1's? Or what? E.g., this?
subB = [A(sum(A,2)==1,:);...
A(sum(A,2)==2,:);...
A(sum(A,2)==3,:);...
A(sum(A,2)==4,:);...
A(sum(A,2)==5,:)];
  2 Comments
Quynh tran
Quynh tran on 19 May 2017
in subB, I want with 5 colums but number of 1 in a row is less than 3
James Tursa
James Tursa on 19 May 2017
Edited: James Tursa on 19 May 2017
Your words do not match your example. Maybe a truncated version of the above?
subB = [A(sum(A,2)==1,:);...
A(sum(A,2)==2,:);...
A(sum(A,2)==3,:)];
or
subB = [A(sum(A,2)==1,:);...
A(sum(A,2)==2,:)];

Sign in to comment.

More Answers (0)

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!