Azzera filtri
Azzera filtri

summing up array element

3 visualizzazioni (ultimi 30 giorni)
Bathrinath
Bathrinath il 25 Lug 2013
Modificato: per isakson il 11 Set 2021
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

Risposte (4)

Cedric
Cedric il 25 Lug 2013
Modificato: Cedric il 25 Lug 2013
Hi, use CUMSUM:
>> p_csum = cumsum(p)
p_csum =
3 9 11 16
  2 Commenti
Bathrinath
Bathrinath il 25 Lug 2013
Thanks it works. Can you give the solution in for loop .
Cedric
Cedric il 25 Lug 2013
Modificato: Cedric il 25 Lug 2013
Did you try building a solution based on a FOR loop? What did you implement so far?

Accedi per commentare.


Evan
Evan il 25 Lug 2013
Modificato: Evan il 25 Lug 2013
help cumsum
>> s = cumsum(p)
s =
3 9 11 16
  1 Commento
Bathrinath
Bathrinath il 25 Lug 2013
Thanks it works. Can you give the solution in for loop .

Accedi per commentare.


Andrew Reibold
Andrew Reibold il 25 Lug 2013
Modificato: Andrew Reibold il 25 Lug 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
Iain il 25 Lug 2013
Modificato: Iain il 25 Lug 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 Commento
Jan
Jan il 25 Lug 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.

Accedi per commentare.

Categorie

Scopri di più su Matrices and Arrays 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