how to count numer of "1" in matrix
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
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??
0 comentarios
Respuesta aceptada
Star Strider
el 11 de En. de 2015
The easiest way:
nr_ones = nnz(matrix);
3 comentarios
Star Strider
el 11 de En. de 2015
@John — Thank you for clearly explaining the additional options, their strengths and constraints.
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.
Más respuestas (0)
Ver también
Categorías
Más información sobre Sparse Matrices en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!