How do I add the sum of 1st 3 elements of a vector in a for loop?

28 views (last 30 days)
I'd like for my for loop to end at n-1 as I have other code in the body. I just want to add a line in the for loop to add the sum of the 1st 3 elements underneath the left end points in the for loop and display it outside
t=0:5; a=[32 19.41 11.77 7.14 4.33 2.63];
n=length(a); a1=a(1:3);
S=0;
for k=1:n-1;
S=S+sum(a(k)); % left end-points = upper estimate because a is decreasing
end
disp(S)
I'd like the code to do this with the desired output:
S = 32+ 51.41 + 63.18 = 146.59

Accepted Answer

Stephen23
Stephen23 on 12 Jun 2025
Edited: Stephen23 on 12 Jun 2025
a = [32,19.41,11.77,7.14,4.33,2.63];
m = 3;
s = sum(cumsum(a(1:m)))
s = 146.5900
or
s = a(1:m)*(m:-1:1).'
s = 146.5900
or
s = dot(a(1:m),m:-1:1)
s = 146.5900
or
s = sum(a(1:m).*(m:-1:1))
s = 146.5900
or
s = sum(a(1:m)*triu(ones(m)))
s = 146.5900
or
s = sum(repelem(a(1:m),m:-1:1))
s = 146.5900

More Answers (0)

Products


Release

R2021a

Community Treasure Hunt

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

Start Hunting!