get the intersection points in the graph
3 次查看(过去 30 天)
显示 更早的评论
if i draw a line at y = 1,
how to get the point at which the line will intersect the graph (marked in blue line in the image)?
Also i need to find the area of the region.
0 个评论
采纳的回答
Star Strider
2018-1-19
Try this:
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); % Returns Approximate Zero-Crossing Indices Of Argument Vector(y);
idx = zci(y - yline); % Indices Near ‘y=1’
for k1 = 1:numel(idx)
xint(k1) = interp1(y(idx(k1):idx(k1)+1),x(idx(k1):idx(k1)+1),yline,'linear','extrap'); % Find ‘x’ At ‘y=1’
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))
0 个评论
更多回答(1 个)
Jan
2018-1-19
I have answered this question today already. Please read your other thread: https://www.mathworks.com/matlabcentral/answers/377903-draw-a-line-parallel-to-x-axis#answer_300827.
Why did you remove the diagram there and inserted it here again?
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Directed Graphs 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!