find sum of all the entries with value 0

1 Ansicht (letzte 30 Tage)
arun
arun am 29 Nov. 2013
Kommentiert: Jos (10584) am 2 Dez. 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.

Akzeptierte Antwort

Matt J
Matt J am 29 Nov. 2013
Bearbeitet: Matt J am 29 Nov. 2013
  3 Kommentare
Matt J
Matt J am 29 Nov. 2013
Bearbeitet: Matt J am 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 am 30 Nov. 2013
okieee,sorry............... i got it.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

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

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Sparse Matrices finden Sie in Help Center und File Exchange

Tags

Noch keine Tags eingegeben.

Community Treasure Hunt

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

Start Hunting!

Translated by