指数拟合和cftools在Matlab中给出不同的结果

时间:2016-04-28 13:21:22

标签: matlab

我正在努力适应指数级下降的数据。如果我使用cftools来拟合单个术语指数,我就会很合适。但是,当我尝试使用fit函数时:

f = fit(x, y, 'exp1');

它给了我以下错误:

Warning: NaN, Inf, or complex value detected in startpoint;
choosing random starting point instead. 
> In curvefit.attention.Warning/throw (line 30)
  In fit>iFit (line 299)
  In fit (line 108) 

它给出的系数最终变成了垃圾。

我认为cftools正在运行fit。为什么会有区别?如何从脚本中运行cftools

1 个答案:

答案 0 :(得分:3)

为什么不做错误所暗示的呢?

f = fit(x, y, 'exp1', 'StartPoint', rand);

您可能希望将rand更改为更明智的第一次猜测,但这完全取决于您的问题域。

否则cftools应具有code generation功能,该功能会打印出MATLAB代码,该代码会复制您使用该工具以交互方式执行的任何操作,以便将来以编程方式运行它。这是一个很好的入门方式。