2012-04-02 111 views
0

我知道這個問題一定有一個非常簡單的答案,但我似乎無法找到它。 (猜猜我可能谷歌搜索錯誤的條款。)如何在Matlab中找到一個陰謀的x截距

我正在繪製一些數據在Matlab中使用圖(x,數據)函數。

我想找到的行的x截距(一個或多個),即,在點(一個或多個),其中y = 0。

在某些情況下,它可以是數據載體不實際上包含等於零的值,因此它不僅僅是找到等於零的數據中的元素的索引,然後找到向量中的相應元素。

就像我說的,這是一個非常簡單的問題,我倒是覺得已經有在Matlab一些內置的功能...

謝謝您的幫助。

+0

如果沒有「y」恰好等於0的點,您是否想要最接近y == 0的點,或者您想要在最近點之間進行插值,還是可以通過整個系列? – yuk 2012-04-02 20:37:46

+0

@yuk我總是與x截距相交的數據。所以,即使矢量本身沒有0作爲它的一個值,我想要得到的點(由Matlab繪製)與x軸相交的點。 – Rachel 2012-04-02 20:40:46

回答

2

如果您想尋找X-2個攔截最近點之間的插值圍繞X軸,您可以使用INTERP1功能:

x0 = interp1(y,x,0); 

它會工作,如果xy單調遞增/遞減。

0
x=-1.999:0.001:1.999; 
y=(x-1).*(x+1); 
plot(x,y) 
hold on 
plot(x,zeros(length(x),1),'--r') 
find(abs(y)<1e-3) 

所以最後一部分將保證即使沒有確切的y截距,你仍然會得到一個接近的值。此代碼的結果是滿足條件的索引。