2017-03-20 45 views
-1

知道我們有構成此曲線的每個點的所有座標X和Y,是否可以獲得曲線方程?我認爲這是可能的,但是如何? (知道它不是傳統的曲線類型:右,拋物線,雙曲線......更多的類型「蛇」絕對不是一種曲線)曲線方程

點的示例:第一列是X和第二個Y

795 365 
816 365 
24 365 
25 365 
222 366 
312 366 
313 366 
317 366 
318 367 
343 367 
344 367 
669 367 
751 368 
752 368 
763 368 
795 368 
796 368 
814 369 
815 369 
23 369 
313 369 
314 369 
315 370 
316 371 
344 372 
345 372 
+0

我會嘗試['fit'](https://www.mathworks.com/help/curvefit/fit.html)。它有各種各樣的適合選擇的一個好文件。 – Adiel

+0

爲了適合一般類型的曲線,使用['spline'](https://ch.mathworks.com/help/matlab/ref/spline.html)是一個合理的選擇。然後您可以從命令的輸出中獲取樣條曲線的係數。 – Richard

+0

你能否澄清一下你的意思是「更多類型的蛇'確切地說不是一種曲線類型」。也許舉一個曲線的例子以及你試圖適合的方程式? – Richard

回答

0

您可能不需要曲線,使用interp1在您的數據點之間進行插值的解決方案可能是最好的。特別是當你說你的用例是看看這個數據集有多遠的時候。

例如,假設您有兩列數據(xy)。你可以定義一些匿名函數f

f = @(xin) interp1(x,y,xin); 

有不同的插值(和推斷)選項interp1,看到documentation。默認值是簡單的線性插值,但是你可以用花鍵等..

然後你就可以通過原有範圍內插數據的範圍內(在這個例子說4.2)提供的x值使用此...

y_interpolated = f(4.2); 

基本上用它作爲查找表。