Azzera filtri
Azzera filtri

find sum of all the entries with value 0

2 visualizzazioni (ultimi 30 giorni)
arun
arun il 29 Nov 2013
Commentato: Jos (10584) il 2 Dic 2013
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.

Risposta accettata

Matt J
Matt J il 29 Nov 2013
Modificato: Matt J il 29 Nov 2013
sum(~mat(:))
  3 Commenti
Matt J
Matt J il 29 Nov 2013
Modificato: Matt J il 29 Nov 2013
No, what I proposed
sum(~mat(:))
works indepedently of ndims(mat) and will save you additional function calls to sum().
arun
arun il 30 Nov 2013
okieee,sorry............... i got it.

Accedi per commentare.

Più risposte (1)

Jos (10584)
Jos (10584) il 30 Nov 2013
NNZ is the dedicated function to do this:
nnz(~mat)
  3 Commenti
John D'Errico
John D'Errico il 30 Nov 2013
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) il 2 Dic 2013
Thanks, Matt and John, for the insights.

Accedi per commentare.

Categorie

Scopri di più su Systems of Nonlinear Equations in Help Center e File Exchange

Tag

Non è stata ancora inserito alcun tag.

Community Treasure Hunt

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

Start Hunting!

Translated by