Computing the overlapping area of curves

조회 수: 4(최근 30일)
Deepa Maheshvare
Deepa Maheshvare 2022년 7월 3일
편집: Chunru 2022년 7월 4일
I have a set of datapoints corresponding to 5 curves.
scale = 1.5;
x1 = [0,4,6,10,15,20]*scale;
y1 = [18,17.5,13,12,8,10];
x2 = [0,10.5,28]*scale;
y2= [18.2,10.6,10.3];
x3 = [0,4,6,10,15,20]*scale;
y3 = [18,13,15,12,11,9.6];
x4 = [9,17,28]*scale;
y4 = [5,5.5,7];
x5 = [1,10,20]*scale;
y5 = [3,0.8,2];
plot(x1,y1, '*-', x2, y2, '*-', x3, y3, '*-', x4, y4, '*-', x5, y5, '*-')
I want to find the overlapping area under these curves.
Suggestions on the functions that could be uded to find the intersecting area and the x limits of the intersecting area will be really helpful.
  댓글 수: 3
Deepa Maheshvare
Deepa Maheshvare 2022년 7월 4일
Thank you for the reply. I am interested in finding the area under each of the curve and visualize the area that overlaps.

댓글을 달려면 로그인하십시오.

채택된 답변

Chunru 2022년 7월 4일
편집: Chunru 2022년 7월 4일
scale = 1.5;
x{1} = [0,4,6,10,15,20]*scale;
y{1} = [18,17.5,13,12,8,10];
x{2} = [0,10.5,28]*scale;
y{2}= [18.2,10.6,10.3];
x{3} = [0,4,6,10,15,20]*scale;
y{3} = [18,13,15,12,11,9.6];
x{4} = [9,17,28]*scale;
y{4} = [5,5.5,7];
x{5} = [1,10,20]*scale;
y{5} = [3,0.8,2];
figure; hold on
xmin = -inf; xmax=inf;
for i=1:length(x)
area(x{i}, y{i}, 'FaceAlpha', 0.5); % visualize area with transparancy
a(i) = trapz(x{i}, y{i}); % compute area
xmin = max(xmin, min(x{i}));
xmax = min(xmax, max(x{i}));
xline([xmin xmax], 'LineWidth', 2)
a = 1×5
369.7500 501.1125 379.5000 166.1250 46.6500
  댓글 수: 2
Chunru 2022년 7월 4일
See the update.

댓글을 달려면 로그인하십시오.

추가 답변(0개)





Community Treasure Hunt

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

Start Hunting!

Translated by