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
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
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
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.
0 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!