area between two overlapping plots
4 views (last 30 days)
Show older comments
Hi,
I have a plot that of two curves that overlap and want to calculate the area of overlap. The plot looks as below. The curves are from data set and are not fit to any equation. How you I calculate the area of the overlapping region ?
Thanks in advance.

0 Comments
Accepted Answer
KL
on 17 Oct 2017
You could use trapz to calculate the area under the curve.
But before that you need to calculate the intersecting portion of the curves. Check this example with some dummy data,
x1 = 0.01:0.01:1;
y1 = [sin(pi*x1) zeros(1,20)];
x2 = x1+0.2;
y2 = [zeros(1,20) sin(pi*x1)];
y_d = [y2(y2<y1) y1(y1<y2)];
area_int = trapz(y_d)
%plots in case you want to visualize
plot(y1)
hold on
plot(y2)
plot(y_d,'k-o')
2 Comments
Alexander Collins
on 9 Apr 2021
I noticed that for when I do this the overlap values very close to zero (where one curve is on the order of 10E-7) get reshuffled to the end of the array, causing the whole thing to get shifted out of alignment.
Is this a known thing? Any ideas?

More Answers (0)
See Also
Categories
Find more on 2-D and 3-D Plots 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!