summing up array element
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Hello,
I am new to programming, I have an array like p = [3 6 2 5];
I need c = [3 9 11 16]; First element in the array is as it is, when it goes to next element it has to sum the previous element.
Regards, SBN
1 Kommentar
Antworten (4)
Andrew Reibold
am 25 Jul. 2013
Bearbeitet: Andrew Reibold
am 25 Jul. 2013
Here is your solution in a really easy loop.
p = [3 6 2 5]; %Can have as many numbers as you want
for n = 2:length(p) %n can be whatever counter you want.
p(n) = p(n)+p(n-1); %semi-colon suppresses output
end
-Andrew
Iain
am 25 Jul. 2013
Bearbeitet: Iain
am 25 Jul. 2013
for i = 1:numel(p)
c(i) = sum(p(1:i));
end
Or
so_far = 0;
for i = 1:numel(p)
so_far = so_far + p(i);
c(i) = so_far;
end
or
for i = 1:numel(p)
s = 0;
for j = 1:i
s = s+ p(j);
end
c(i) = s;
end
1 Kommentar
Jan
am 25 Jul. 2013
These are inefficient solutions, because the complete sum is calculated in each iteration. While this might not matter for 4 elements, the runtime will grow rapidly for longer data.
It is more efficient to re-use the sum for the elements 1 to i, when the sum until the i+1.th element is obtained. See Andrews answer.
Siehe auch
Kategorien
Mehr zu Matrices and Arrays finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!