find sum of all the entries with value 0

3 次查看(过去 30 天)
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 CenterFile Exchange 中查找有关 Systems of Nonlinear Equations 的更多信息

标签

尚未输入任何标签。

Community Treasure Hunt

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

Start Hunting!

Translated by