how to count numer of "1" in matrix
조회 수: 1 (최근 30일)
이전 댓글 표시
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
채택된 답변
Star Strider
2015년 1월 11일
The easiest way:
nr_ones = nnz(matrix);
댓글 수: 3
Star Strider
2015년 1월 11일
@John — Thank you for clearly explaining the additional options, their strengths and constraints.
Image Analyst
2015년 1월 11일
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.
추가 답변 (0개)
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!