I want the number of rows that have bigger than 0 or 1

2 vues (au cours des 30 derniers jours)
Giannakis Stoukas
Giannakis Stoukas le 23 Mar 2015
Commenté : per isakson le 23 Mar 2015
For example i have the matrix A=[2 3 1; 4 7 6; 1 9 1; 1 0 1] and i want the overall number of the rows that have bigger than 1 price. To this exammple the number i should get is 3,because the max price of the last row is 1.

Réponse acceptée

per isakson
per isakson le 23 Mar 2015
Modifié(e) : per isakson le 23 Mar 2015
Is this what you look for
length(find(max(A,[],2)>1))
ans =
3
  2 commentaires
Guillaume
Guillaume le 23 Mar 2015
That's a bit convoluted!
per isakson
per isakson le 23 Mar 2015
Agree!

Connectez-vous pour commenter.

Plus de réponses (1)

Guillaume
Guillaume le 23 Mar 2015
sum(any(A > 1, 2))
Basically,
  • A > 1 compare the matrix to 1, this returns a matrix of logical
  • any(X, 2) returns a column vector that is true if any of the row element is true, so any(A>1, 2) is a column with 1 for any row that as at least one element >1.
  • sum(X) sums all the ones for the rows that have at least one element greater than 1, so is the number of rows that you want

Catégories

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

Community Treasure Hunt

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

Start Hunting!

Translated by