MATLAB: Area under a hysteresis curve

area under a curveMATLAB

I am trying to calculate absolute area of a hysteresis loop as shown in attached image. I am first dividing the curve into 2 halves based on positive and negative values on y axis.
Then I have 2 curves in "red" and "yellow" on bottom half. I am using trapz(x,y) to find out area under both curves separately. And then the area that i require is double of the difference between the 2 areas.
Is this approach correct? Is there any simpler way of doing this? Thanks.

Best Answer

Yes yoou can use trapz. Other option is, arrange the coordinates of curves into a closed polygon and use polyarea.
Related Question