回答
你可以做的一件伟大的事情是在Matlab中使用“曲线拟合”应用程序。你可以在APPS的“数学,统计和优化”部分找到它。
在那里,您可以选择您的x和y数据以及您希望适合它们的功能(您可以输入自定义方程式,例如S形)。
然后,您可以在一个图上看到拟合结果,并显示拟合参数。
如果您对结果感到满意并且想要在代码中使用它们,只需点击File选项卡下的生成代码即可。 你可以在截图中看到细节。按下生成代码按钮后,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
只要小心,代码和图像中的fittype不对应。 – lhcgeneva
@lhcgeneva为什么不呢? – HoomanShan
因为你的图像中的fittype是sigmoid('a /(1 + exp(-bx)'),而你的代码是指数('a +(ba)* exp(-c * x)') – lhcgeneva
- 1. 拟合高斯数据用Matlab
- 2. Matlab - 点云数据的曲线拟合
- 3. 拟合Powerlaw指数数据matlab
- 4. matlab的指数拟合
- 5. Matlab(如何拟合多个数据集)
- 6. 拟合对数正态分布使用Scipy与Matlab
- 7. 在对数 - 对数图上使用polyfit拟合数据集
- 8. MATLAB:多个函数拟合
- 9. 从MatLab拟合对象图得到点
- 10. 为什么我无法使用scipy.optimize.curve_fit将sigmoid函数适用于此数据?
- 11. MATLAB组合数据
- 12. 从拟合对象中取得拟合数据
- 13. 在Matlab中通过数据点拟合指数曲线
- 14. 任意数据集的MATLAB曲线拟合
- 15. Matlab的:最小二乘拟合至2D数据集
- 16. 对数据进行积分拟合
- 17. 在Matlab中拟合分布函数
- 18. Python数据拟合
- 19. 预测曲线拟合matlab
- 20. matlab概率分布拟合
- 21. 计算sigmoid函数
- 22. 使用数字数据集拟合数据(测量)
- 23. 用MATLAB拟合神经网络
- 24. 用误差线拟合曲线,Matlab
- 25. vb中的sigmoid函数
- 26. 拟合数据到一个已知的函数MATLAB(没有曲线拟合工具箱)
- 27. Matlab:使用起始值的曲线拟合
- 28. 在MatLab中使用数据窗口对数据进行分区
- 29. MatLab中的自定义曲线拟合
- 30. 模拟实时数据流Matlab
如果设置正确,并且可以确保分母在近似值范围内没有零,多项式(等度)的比率可以非常好地拟合S形。这可能是过度的,但很难说根据你的问题。 – mathematician1975
你可以尝试与lsqnonlin http://au.mathworks.com/help/optim/ug/lsqnonlin.html – gregswiss
可能重复的[MATLAB拟合数据给用户给定函数](http://stackoverflow.com/questions/12970043 /数据到用户给定函数的matlab拟合) – tashuhka