Summation of values > 1 in a cell array

Suppose I've a cell array;
cnt{1}=[3;1;3;2;1;2]
I would like to sum up the values which are > 1 ie the answer should return 10 (3+3+2+2)
I've tried using 'find' but the answer only returns the indices of the values > 1 and not the values.
ind=(find(cnt{1}>1))
How can I go about this? Please give me some hint.

 Respuesta aceptada

Ilham Hardy
Ilham Hardy el 12 de Abr. de 2013
sumVal = sum(cnt{1})-length(find(cnt{1}==1))

3 comentarios

Matt J
Matt J el 12 de Abr. de 2013
Editada: Matt J el 12 de Abr. de 2013
Even if you wanted to do it this way, FIND is unnecessary
sumVal = sum(cnt{1})-sum(cnt{1}==1),
or
sumVal = sum(cnt{1})-sum(cnt{1}(cnt{1}<=1)),
Ilham Hardy
Ilham Hardy el 12 de Abr. de 2013
Yes, i agree. This way will be faster.
However i don't fully get the differences between example#1 and example#2. Care to explain?
Matt J
Matt J el 12 de Abr. de 2013
The 2nd method would be needed if the threshold were something other than 1.

Iniciar sesión para comentar.

Más respuestas (1)

Matt J
Matt J el 12 de Abr. de 2013
Editada: Matt J el 12 de Abr. de 2013
ind=(cnt{1}>1);
sum(cnt{1}(ind)),

Categorías

Más información sobre Creating and Concatenating Matrices en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

RDG
el 12 de Abr. de 2013

Community Treasure Hunt

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

Start Hunting!

Translated by