필터 지우기
필터 지우기

summing up array element

조회 수: 3 (최근 30일)
Bathrinath
Bathrinath 2013년 7월 25일
편집: per isakson 2021년 9월 11일
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
Jan
Jan 2013년 7월 25일
Is this a homework question?

댓글을 달려면 로그인하십시오.

답변 (4개)

Cedric
Cedric 2013년 7월 25일
편집: Cedric 2013년 7월 25일
Hi, use CUMSUM:
>> p_csum = cumsum(p)
p_csum =
3 9 11 16
  댓글 수: 2
Bathrinath
Bathrinath 2013년 7월 25일
Thanks it works. Can you give the solution in for loop .
Cedric
Cedric 2013년 7월 25일
편집: Cedric 2013년 7월 25일
Did you try building a solution based on a FOR loop? What did you implement so far?

댓글을 달려면 로그인하십시오.


Evan
Evan 2013년 7월 25일
편집: Evan 2013년 7월 25일
help cumsum
>> s = cumsum(p)
s =
3 9 11 16
  댓글 수: 1
Bathrinath
Bathrinath 2013년 7월 25일
Thanks it works. Can you give the solution in for loop .

댓글을 달려면 로그인하십시오.


Andrew Reibold
Andrew Reibold 2013년 7월 25일
편집: Andrew Reibold 2013년 7월 25일
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
Bathrinath
Bathrinath 2013년 7월 25일
Thanks it works

댓글을 달려면 로그인하십시오.


Iain
Iain 2013년 7월 25일
편집: Iain 2013년 7월 25일
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
Jan
Jan 2013년 7월 25일
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.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Matrices and Arrays에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by