如何在不使用数据光标的情况下在x = 0.5处找到红色高斯的精确y坐标?
我希望蓝线在触及高斯时结束。但是我需要找到红色显示的histfit
和0.5的蓝线高斯之间的交点。我可以按如下方式访问histfit
图的数据点:
C = get(get(gca, 'Children'), 'YData');
C{1,1}
line([0.5 0.5],[0 max(C{1,1})],'Color','b');
然而,高斯数据点与此轴无关。含义,C{1,1}
的x轴是1 - 100而不是0.1到0.9。
最简单的方法是找到0.5的高斯y坐标,以便我可以用max(C{1,1})
代替它?
答案 0 :(得分:0)
获取XData
也应该为您提供正确的x值:
C = get(get(gca, 'Children'), 'XData');
或者,YData
的值应该是有规律的间隔,即使不是在正确的范围内(因为它来自hist
),所以你可能会找到对应于x的y值在图中= 0.5。
0.1和0.85之间的点x = 0.5(大约,从图中)到1到100之间的点x = 53.33。如果x = 53处的y值对于绘图来说不够准确,你可以插入53到54之间的值,这应该足够了。
以下是应该完成这项工作的一些代码:
XPlotRange = [0.1 0.85];
XDataRange = [1 100];
XPlotToInterp = 0.5;
XDataToInterp = XDataRange(1) + (XPlotToInterp - XPlotRange(1))*diff(XDataRange)/diff(XDataRange);
XData1 = floor(XDataToInterp);
XData2 = ceil(XDataToInterp);
YInterp = interp1([XData1 XData2], [YData(XData1) YData(XData2)], XDataToInterp);
此处YInterp
是相应x值的插值y值。