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!