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

 Accepted Answer

n = length(y);
Area = 0;
for k=1:(n-1)
Area = Area + (y(k) +y(k+1))/2;
end

More Answers (2)

y = randi(10,5,1);
Area = sum(conv2(y,[1;1]/2,'valid'));

3 Comments

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?

Sign in to comment.

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)

Categories

Find more on Mathematics and Optimization in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!