使用MATLAB为我的数据拟合sigmoid

时间:2015-11-02 10:31:11

标签: matlab curve-fitting data-fitting

我有很多数据,我认为可以将它放到sigmoid上(这种想法基于我的视线,而不是数学公式)。

如何找到对我的数据具有统计上最佳sigmoid解释力的参数形式?

谢谢!

1 个答案:

答案 0 :(得分:3)

您可以做的一件好事是使用"曲线拟合"在Matlab中的应用程序。你可以在APPS,数学,统计和优化中找到它。部分。

在那里你可以选择x和y数据以及你想要适合它们的函数(你可以输入自定义方程,如sigmoid)。

然后你可以在图上看到拟合结果,同时显示拟合参数。

如果您对结果感到满意并且想要在代码中使用它们,只需点击“文件”选项卡下的生成代码即可。 See Here 你可以在我拍摄的这个截图中看到详细信息。按下生成代码按钮后,matlab将创建一个将产生相同结果的函数。我想做的就是复制我在这种情况下需要的部分:

 enter code here
 [xData, yData] = prepareCurveData( x, y );

 % Set up fittype and options.
ft = fittype( 'a/(1+exp(-b*x))', 'independent', 'x', 'dependent', 'y' );
opts = fitoptions( 'Method', 'NonlinearLeastSquares' );
opts.Display = 'Off';
opts.StartPoint = [0.957166948242946 0.485375648722841];

% Fit model to data.
[fitresult, gof] = fit( xData, yData, ft, opts );

如您所见,matlab添加了必要的细节,现在您可以使用fitresult访问拟合参数。例如 - > fitresult.a