How can I add the average of two consecutive numbers?

How can I put this in a simpler form?
Area=(y(1)+y(2)/2+(y(2)+y(3)/2+(y(3)+y(4)/2+(y(4)+y(5))/2

 채택된 답변

David Sanchez
David Sanchez 2013년 11월 26일
n = length(y);
Area = 0;
for k=1:(n-1)
Area = Area + (y(k) +y(k+1))/2;
end

추가 답변 (2개)

Andrei Bobrov
Andrei Bobrov 2013년 11월 26일
편집: Andrei Bobrov 2013년 11월 26일
y = randi(10,5,1);
Area = sum(conv2(y,[1;1]/2,'valid'));

댓글 수: 3

It doesn't give me the right answer. I have this:
x0=1; x14=15; xr=x0:1:x14; y=A*xr.^3+B*xr.^2+C*xr+D; y_m=randi(10,15,1); Area=sum(conv2(y_m,[1;1]/2,'valid'))
What should be correctly?
I solved it. Thank you!!

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

Chibuzo Nnonyelu
Chibuzo Nnonyelu 2018년 6월 27일
By using indexing and simple maths (y1 + y2)/2 = (y2 - y1)/2 + y1 therefore, you can do this as
Area = diff(y)/2 + y(1, end - 1)

카테고리

도움말 센터File Exchange에서 Logical에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by