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

2 visualizzazioni (ultimi 30 giorni)
Putri Basenda Tarigan il 18 Nov 2020
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?
##### 2 CommentiMostra NessunoNascondi Nessuno
Timo Dietz il 18 Nov 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 il 18 Nov 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

Accedi per commentare.

### Risposta accettata

Rik il 18 Nov 2020
b=cumsum(m);
b=b(c);
##### 5 CommentiMostra 3 commenti meno recentiNascondi 3 commenti meno recenti
Timo Dietz il 18 Nov 2020
That's intersting. Many thanks for the insights.
Putri Basenda Tarigan il 18 Nov 2020
Thank you Sir

Accedi per commentare.

### Più risposte (1)

Timo Dietz il 18 Nov 2020
Modificato: Timo Dietz il 18 Nov 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 CommentiMostra NessunoNascondi Nessuno
Rik il 18 Nov 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 il 18 Nov 2020
I see. Thanks a lot for the details.

Accedi per commentare.

### Categorie

Scopri di più su Loops and Conditional Statements in Help Center e File Exchange

### Community Treasure Hunt

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

Start Hunting!

Translated by