summing up array element

1 vue (au cours des 30 derniers jours)
Bathrinath
Bathrinath le 25 Juil 2013
Modifié(e) : per isakson le 11 Sep 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
  1 commentaire
Jan
Jan le 25 Juil 2013
Is this a homework question?

Connectez-vous pour commenter.

Réponses (4)

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

Connectez-vous pour commenter.


Evan
Evan le 25 Juil 2013
Modifié(e) : Evan le 25 Juil 2013
help cumsum
>> s = cumsum(p)
s =
3 9 11 16
  1 commentaire
Bathrinath
Bathrinath le 25 Juil 2013
Thanks it works. Can you give the solution in for loop .

Connectez-vous pour commenter.


Andrew Reibold
Andrew Reibold le 25 Juil 2013
Modifié(e) : Andrew Reibold le 25 Juil 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
  1 commentaire
Bathrinath
Bathrinath le 25 Juil 2013
Thanks it works

Connectez-vous pour commenter.


Iain
Iain le 25 Juil 2013
Modifié(e) : Iain le 25 Juil 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 commentaire
Jan
Jan le 25 Juil 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.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Special Functions dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by