how to do sum of element of multiple number in matlab?

2 visualizaciones (últimos 30 días)
Hello everyone.
If I have
m=[3 3 4 3 2 4 3]
c=[3 4]
then I want to calculate the sum of m(c) at the same time
I tried
b=1:m(c)
b=sum(b)
but only give me one number. I want it to be 2 numbers. How to do this?
Thanks in advance
  2 comentarios
Timo Dietz
Timo Dietz el 18 de Nov. de 2020
Could you please explain in more detail? Does c contain the indices up to which you like to sum up m - starting always from 1? Or why do you expect two numbers as result?
Putri Basenda Tarigan
Putri Basenda Tarigan el 18 de Nov. de 2020
this means that for c=3, I want to sum m from 1 to 3, so it's 10. and for c=4, it's sum of m from 1 to 4, so it's 13.
then I want to achieve these two numbers to compare them in the next step

Iniciar sesión para comentar.

Respuesta aceptada

Rik
Rik el 18 de Nov. de 2020
b=cumsum(m);
b=b(c);
  5 comentarios
Timo Dietz
Timo Dietz el 18 de Nov. de 2020
That's intersting. Many thanks for the insights.

Iniciar sesión para comentar.

Más respuestas (1)

Timo Dietz
Timo Dietz el 18 de Nov. de 2020
Editada: Timo Dietz el 18 de Nov. de 2020
Not sure whether I got your issue. But in case you want to summarize all members of m starting at index 1, up to each member of c (containing indices of m) individually, you can do this:
b=arrayfun(@(x) sum(m(1:x)), c)
  2 comentarios
Rik
Rik el 18 de Nov. de 2020
Functions like arrayfun and cellfun tend to be slower than using a for loop. The exception appears to be the legacy calls of cellfun (so those with the char input, instead of a function handle).
Timo Dietz
Timo Dietz el 18 de Nov. de 2020
I see. Thanks a lot for the details.

Iniciar sesión para comentar.

Categorías

Más información sobre Loops and Conditional Statements en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by