[英]Find point of intersection between histfit and line - MATLAB
如何在不使用數據游標的情況下找到x = 0.5時紅色高斯的精確y坐標?
我希望藍線在接觸高斯時結束。 但是我需要找到以紅色顯示的histfit
的高斯與以histfit
表示的藍線之間的交點。 我可以按以下方式訪問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})
?
同樣獲得XData
應該會為您提供正確的x值:
C = get(get(gca, 'Children'), 'XData');
另外, YData
的值YData
應以規則的間隔,即使不是正確的比例(因為它起源於hist
)也是如此,因此您可能會在圖中找到對應於x = 0.5的y值。
在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值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.