how to count numer of "1" in matrix

2 visualizaciones (últimos 30 días)
Lukasz Jarod
Lukasz Jarod el 11 de En. de 2015
Comentada: Image Analyst el 11 de En. de 2015
i have i matrix with 1/0 (binary img) and i want to count all "1" that are in that matrix. how can i do that??

Respuesta aceptada

Star Strider
Star Strider el 11 de En. de 2015
The easiest way:
nr_ones = nnz(matrix);
  3 comentarios
Star Strider
Star Strider el 11 de En. de 2015
@John — Thank you for clearly explaining the additional options, their strengths and constraints.
Image Analyst
Image Analyst el 11 de En. de 2015
But (recalling my assembly language from decades ago), wouldn't nnz() ultimately involve doing a sum internally? In fact when I test the sum() vs. nnz() I find that sum() is a lot faster, sometimes 10 times faster:
m = randi(2, 10000,1000)-1;
tic
sum(double(m(:)))
toc
tic
nnz(m)
toc
ans =
5002536
Elapsed time is 0.004765 seconds.
ans =
5002536
Elapsed time is 0.048686 seconds.
The only way I could get nnz to be sometimes faster was when I was using a small matrix, like 10-by-10.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Sparse Matrices en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by