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

2 views (last 30 days)
Putri Basenda Tarigan on 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?
Thanks in advance
##### 2 CommentsShow NoneHide None
Timo Dietz on 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 on 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

Sign in to comment.

### Accepted Answer

Rik on 18 Nov 2020
b=cumsum(m);
b=b(c);
##### 5 CommentsShow 3 older commentsHide 3 older comments
Timo Dietz on 18 Nov 2020
That's intersting. Many thanks for the insights.
Putri Basenda Tarigan on 18 Nov 2020
Thank you Sir

Sign in to comment.

### More Answers (1)

Timo Dietz on 18 Nov 2020
Edited: Timo Dietz on 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 CommentsShow NoneHide None
Rik on 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 on 18 Nov 2020
I see. Thanks a lot for the details.

Sign in to comment.

### Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

### Community Treasure Hunt

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

Start Hunting!