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

 Réponse acceptée

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

Plus de réponses (2)

Andrei Bobrov
Andrei Bobrov le 26 Nov 2013
Modifié(e) : Andrei Bobrov le 26 Nov 2013
y = randi(10,5,1);
Area = sum(conv2(y,[1;1]/2,'valid'));

3 commentaires

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!!

Connectez-vous pour commenter.

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)

Catégories

En savoir plus sur Mathematics and Optimization dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by