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

4 views (last 30 days)
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.

Accepted Answer

per isakson
per isakson on 23 Mar 2015
Edited: per isakson on 23 Mar 2015
Is this what you look for
length(find(max(A,[],2)>1))
ans =
3

More Answers (1)

Guillaume
Guillaume on 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

Community Treasure Hunt

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

Start Hunting!

Translated by