Finding the area between a graph and a line

1 次查看(过去 30 天)
basically i need to find the distance (area) of the graph above the 1000mph mark on the graph (y axis).
i have tried using the trapz function however i can only seem to get the total area of the graph.
how would i go about this?
the x axis should read as hours, not seconds, so just ignore that. a quick response would be greatly appreciated.
so far the only code i have is:
for c=1:9
int=(trapz(Time_h,Velocity_milesph(:,c)));
disp(int)
end
what would i subtract from the trapz function to get just the area above 1000mph?
thanks

采纳的回答

dpb
dpb 2015-12-2
for c=1:9
ix=Velocity_milesph(:,c)>=1000;
int=(trapz(Time_h(ix),Velocity_milesph(:,c(ix))));
disp(int)
end
You'll still need to normalize by dt of course...
  1 个评论
dpb
dpb 2015-12-2
You may want to check on the granularity of the result of the check and improve the endpoints by interpolation to find the crossover if there's a fair disparity between the end values returned and the setpoint value.

请先登录,再进行评论。

更多回答(1 个)

Kirby Fears
Kirby Fears 2015-12-2
The area below your curve and above Y=1000 is obtained by integrating (Velocity_milesph - 1000) over X values were Velocity_milesph is over 1000. The below code adjustments should be what you're looking for.
for c=1:9
interval = (Velocity_milesph(:,c)-1000) > 0;
fastArea = trapz(Time_h(interval),Velocity_milesph(interval,c)-1000);
disp(fastArea)
end
I'm not sure if trapz() is the right method for you since it uses unit spacing. Be sure that 1 unit of Time_h is considered very small relative to the amount of time that velocity is over 1000. Otherwise you will have large errors.

类别

Help CenterFile Exchange 中查找有关 Numerical Integration and Differentiation 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by