【发布时间】:2014-10-03 16:10:38
【问题描述】:
我正在尝试在 MatLab 中定义自定义曲线拟合。我试图拟合的曲线如下:
A*exp(B*x)+C
需要这种拟合的原因是因为我的数据呈指数衰减,但该数据并未接近零(在此数据集中,曲线应该衰减并接近零以上的某个数字)。使用 fittype('exp2') 也不是一个选项,因为它会过度拟合数据(当它应该在 0 以上保持平坦时向上弯曲)。我使用以下代码定义拟合类型:
ft = fittype('(A*exp(B*x)) + C','coefficients', {'A', 'B', 'C'});
但是,当我尝试将数据拟合到此曲线时,我收到以下错误消息:
“使用 cfit/subsref 时出错>iDotReference(第 66 行) 名称既不是系数也不是问题参数。
cfit/subsref 中的错误(第 19 行) out = iDotReference(obj, currsubs);"
在这种情况下,我无法弄清楚 MatLab 到底在抱怨什么。有时,由于我不知道的原因,代码会运行,但适配性很差。我在这里做错了吗?这是衰减到 0 以上值的指数的最佳方法吗?
以下代码是我尝试跑步的方式:
[cf, gof] = fit(time', testArray', fittype);
【问题讨论】:
标签: matlab curve-fitting