x = [1,2,3,4,6,7,9,12,14,15,17,18,19];
y = [0,2,4,5,7,9,10,8.5,6,4,2,1.5,0];
yline = 1;
zci = @(v) find(v(:).*circshift(v(:), [-1 0]) <= 0);
idx = zci(y - yline);
for k1 = 1:numel(idx)
xint(k1) = interp1(y(idx(k1):idx(k1)+1),x(idx(k1):idx(k1)+1),yline,'linear','extrap');
end
RegionArea = trapz(x,y-yline)
figure(1)
plot(x, y)
hold on
plot(x, ones(size(x))*yline)
plot(xint, ones(size(xint))*yline, 'pg', 'MarkerSize',10)
hold off
legend('Data', 'y = 1', 'Intersection Points', 'Location','NE')
text(6, 4, sprintf('Area = %.2f', RegionArea))
Best Answer