我有这个阴谋
[Full Resolution]
我需要在用户输入的X轴上画一条直线,并显示垂直线与我的图的交叉点的坐标。
如何在MATLAB中实现这一点?
例如:用户输入1020,然后在1020处绘制一条垂直直线,该直线在某个点处与绘图相交,并且以某种方式显示该点的坐标。
最佳答案
一种方法是使用GINPUT函数用鼠标以图形方式选择一个点假设您绘制的数据存储在一个变量data
中,那么下面的代码应该做您想要的那种事情。
set(gca,'XLimMode','manual','YLimMode','manual'); % Fix axes limits
hold on;
[x,y] = ginput(1); % Select a point with the mouse
x = round(x); % Round x to nearest integer value
y = data(x); % Get y data of intersection
plot([x x],get(gca,'YLim'),'k--'); % Plot dashed line
plot(x,y,'r*'); % Mark intersection with red asterisk
disp('Intersection coordinates:');
disp([x y]); % Display the intersection point
上面的假设是,图形的x值只是正在绘制的数据数组的索引,上面显示的图形似乎就是这样。