Effacer les filtres
Effacer les filtres

selecting particular rows in a matrix

1 vue (au cours des 30 derniers jours)
Naga A
Naga A le 13 Oct 2015
Commenté : Star Strider le 13 Oct 2015
Hi , I know this is very simple, I have a matrix looks like
A =
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
I need to select the rows which contains only one 1's like the rows 1,2,4. next i need to select the rows which contains two ones like the rows 3,5,6.I'm using the function find to check the indexes containing one as follows:
for i=1:length(A)
b=find(A(i,:)==1);
c(i)=length(b);
end
Is there any possible solution instead of using the for loop, because I need to use this code for the similar matrix contains 120 columns? Thanks for the help.

Réponse acceptée

Star Strider
Star Strider le 13 Oct 2015
This works:
A = [0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1];
Rows_1 = find(sum(A,2)==1) % Rows with 1 ‘1’
Rows_2 = find(sum(A,2)==2) % Rows with 2 ‘1’s
Rows_3 = find(sum(A,2)==3) % Rows with 3 ‘1’s
  2 commentaires
Naga A
Naga A le 13 Oct 2015
Thank you.
Star Strider
Star Strider le 13 Oct 2015
My pleasure.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Creating and Concatenating Matrices dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by