how to count numer of "1" in matrix
2 views (last 30 days)
Show older comments
Lukasz Jarod
on 11 Jan 2015
Commented: Image Analyst
on 11 Jan 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 Comments
Accepted Answer
Star Strider
on 11 Jan 2015
The easiest way:
nr_ones = nnz(matrix);
3 Comments
Star Strider
on 11 Jan 2015
@John — Thank you for clearly explaining the additional options, their strengths and constraints.
Image Analyst
on 11 Jan 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.
More Answers (0)
See Also
Categories
Find more on Sparse Matrices in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!