Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中是否有一个函数允许输入x,y,z进行曲线拟合?_Python_Matlab_Numpy_Curve Fitting_Data Fitting - Fatal编程技术网

Python中是否有一个函数允许输入x,y,z进行曲线拟合?

Python中是否有一个函数允许输入x,y,z进行曲线拟合?,python,matlab,numpy,curve-fitting,data-fitting,Python,Matlab,Numpy,Curve Fitting,Data Fitting,我是机器学习和数据拟合领域的新手,目前正在尝试将一些Matlab代码转换为Python。在这段代码中,我的目标是将曲面拟合到具有(x,y,z)坐标的给定数据点集。Matlab代码如下所示: [xData, yData, zData] = prepareSurfaceData( X0, Y0, ZPhi0 ); % Type of polynom ft = fittype( 'poly44' ); % Fit model to data. [fitresult, gof] = fit( [xDat

我是机器学习和数据拟合领域的新手,目前正在尝试将一些Matlab代码转换为Python。在这段代码中,我的目标是将曲面拟合到具有(x,y,z)坐标的给定数据点集。Matlab代码如下所示:

[xData, yData, zData] = prepareSurfaceData( X0, Y0, ZPhi0 );
% Type of polynom
ft = fittype( 'poly44' );
% Fit model to data.
[fitresult, gof] = fit( [xData, yData], zData, ft );   
[x0,y0]=meshgrid(x,y);
我得到了解下列表达式的值:

 Linear model Poly44:
 val(x,y) = p00 + p10*x + p01*y + p20*x^2 + p11*x*y + p02*y^2 + p30*x^3 +
                 p21*x^2*y + p12*x*y^2 + p03*y^3 + p40*x^4 + p31*x^3*y 
                + p22*x^2*y^2 + p13*x*y^3 + p04*y^4
然而,我一直在寻找一种在Python中复制此功能的方法,但似乎所有可用的函数都只适用于2D。我最初的方法是使用
numpy.polynomy.polifit
,但我被卡住了,因为我想要一些类似的东西:

xData = X0.T
yData = Y0.T
zData = Zphi0.T
pol_degree = 44

coefs, stats = poly.polynomial.polyfit((xData, yData), zData, pol_degree, full=True)
这当然不起作用,我也尝试过其他软件包,但没有任何结果。我看到一篇帖子建议,一个很好的方法是分离尺寸并安装xy和xz,例如:

coefsxy = poly.polynomial.polyfit(xData, yData, pol_degree)
coefsxz = poly.polynomial.polyfit(xData, zData, pol_degree)
但我不知道如何将这两个表达式连接起来,获得所需的曲面

有人能解释一下,将这些Matlab代码转换成Python的最佳方法是什么吗?

您可以看看刚才的3d拟合答案。只需替换为函数并相应地修改数据结构即可