How can I calculate the area between two curves in a specific section?
4 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
I have two curves which have several intersection points (see attachment). I want to calculate the green filled area in between two intersection points. It works to calculate and display the intersection points. However I am struggling to calculate just this specific (green filled) area with the trapz function since there always pops up following error message:
"Index in position 1 is invalid. Array indices must be positive integers or logical values."
[xj,yj] = polyxpoly(x,y1,x,y2); %calculate intersection points %y1 straight line %y2 mean
mapshow(xj,yj,'DisplayType','point','Marker','o');%show intersection points
A=[xj,yj];
for n=length(xj):-1:1
k=A(n,:);
k(:,2)=[];
l=A(n-1,:);
l(:,2)=[];
isec1= find(y2==l);
isec2= find(y2==k);
a = trapz(isec1:isec2,y1(isec1:isec2,1))-trapz(isec1:isec2 ,y2(isec1:isec2,1));
end
0 Kommentare
Antworten (1)
Priyanshu Mishra
am 31 Jan. 2020
Hi Daniel,
When n=1, n-1 goes to zero for which A(0,:) is an invalid index. The error you are getting is becuse of this only.
Siehe auch
Kategorien
Mehr zu Numerical Integration and Differentiation finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!