我正在尝试在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);
1 回答
提供初始猜测有助于适应性很强 . 我发现初始值的正确符号尤为重要 .
无论如何,如果我运行此代码,我不会遇到你遇到的问题:
但我不知道这是否解决了你的问题,因为我无法重现你的错误 .