2017-03-20 40 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); 

基本上用它作为查找表。