フィルターのクリア

find sum of all the entries with value 0

2 ビュー (過去 30 日間)
arun
arun 2013 年 11 月 29 日
コメント済み: Jos (10584) 2013 年 12 月 2 日
I have a cell matrix of mat = [ 1 0 0 4;0 2 0 4], i want to find the sum of the all the entries having value 0. in the case of given example the entries having count 0 are 4; so sum will be 4. how can i do this.

採用された回答

Matt J
Matt J 2013 年 11 月 29 日
編集済み: Matt J 2013 年 11 月 29 日
  3 件のコメント
Matt J
Matt J 2013 年 11 月 29 日
編集済み: Matt J 2013 年 11 月 29 日
No, what I proposed
sum(~mat(:))
works indepedently of ndims(mat) and will save you additional function calls to sum().
arun
arun 2013 年 11 月 30 日
okieee,sorry............... i got it.

サインインしてコメントする。

その他の回答 (1 件)

Jos (10584)
Jos (10584) 2013 年 11 月 30 日
NNZ is the dedicated function to do this:
nnz(~mat)
  3 件のコメント
John D'Errico
John D'Errico 2013 年 11 月 30 日
Note that nnz(~mat) will be poor even for large sparse matrices, because if mat is sparse, then ~mat must create a large and rather dense logical matrix. Better then would be to use a form like:
numel(mat) - nnz(mat)
In my tests, for a large fairly sparse matrix like that generated by Matt in his comment, my form was the fastest.
Jos (10584)
Jos (10584) 2013 年 12 月 2 日
Thanks, Matt and John, for the insights.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeSystems of Nonlinear Equations についてさらに検索

タグ

タグが未入力です。

Community Treasure Hunt

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

Start Hunting!

Translated by