首页 > 解决方案 > 在不使用 cftool 的情况下使用命令行中的自定义方程进行曲线拟合

问题描述

我有一些使用 cftool 的自定义方程很好地拟合曲线的数据。等式是:y = a exp(-b x)+c。有什么方法可以从命令行使用相同的等式?例如使用 fit 命令和 exp1 给出以下结果:

f = fit(time,T102,'exp1')

f = 

     General model Exp1:
     f(x) = a*exp(b*x)
     Coefficients (with 95% confidence bounds):
       a =      0.0726  (0.0717, 0.0735)
       b =  -1.263e-05  (-4.171e-05, 1.645e-05)

然而,这个方程的形式并不适合我的数据。我需要将方程设为 f(x) = a exp(b x) + c。我知道我可以从 cftool 获得它,但我有许多不同的数据集来曲线拟合(~30),我只想要 MATLAB 在自定义方程 f(x) = a exp中返回的 a、b 和 c (b x) + c。

标签: matlabcurve-fitting

解决方案


我最终使用以下链接中的信息找到了答案: https ://www.mathworks.com/help/curvefit/fit.html

  1. 创建一个包含自定义方程的 matlab 函数以进行拟合

    函数 y = CustomCurveFitFunction(x,a,b,c)

    y = a exp(-b x) + c;

    结尾

  2. 从 MATLAB 以以下方式调用函数

    ft = fittype('CustomCurveFitFunction(x, a, b, c)');

    f = fit(time, y, ft);
    

推荐阅读