summing up array element

3 visualizaciones (últimos 30 días)
Bathrinath
Bathrinath el 25 de Jul. de 2013
Editada: per isakson el 11 de Sept. de 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 comentario
Jan
Jan el 25 de Jul. de 2013
Is this a homework question?

Iniciar sesión para comentar.

Respuestas (4)

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

Iniciar sesión para comentar.


Evan
Evan el 25 de Jul. de 2013
Editada: Evan el 25 de Jul. de 2013
help cumsum
>> s = cumsum(p)
s =
3 9 11 16
  1 comentario
Bathrinath
Bathrinath el 25 de Jul. de 2013
Thanks it works. Can you give the solution in for loop .

Iniciar sesión para comentar.


Andrew Reibold
Andrew Reibold el 25 de Jul. de 2013
Editada: Andrew Reibold el 25 de Jul. de 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 el 25 de Jul. de 2013
Editada: Iain el 25 de Jul. de 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 comentario
Jan
Jan el 25 de Jul. de 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.

Iniciar sesión para comentar.

Categorías

Más información sobre Matrices and Arrays en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by