我在 matlab 中使用非线性拟合工具。我不断收到以下错误:
使用 nlinfit 时出错(第 210 行) MODELFUN 必须是一个函数,该函数返回与 Y(1×100)大小相同的拟合值向量。您提供的模型函数返回 1×2 的结果。大小不匹配的一个常见原因是在函数中使用矩阵运算符 ( , /, ^) 而不是相应的元素运算符 (. , ./, .^)。
我发现这个问题与我的非常相似,但我仍然得到同样的错误。我尝试在控制台上计算myfun,同时使用向量作为输入,这给了我正确尺寸的输出。如果有人能指出错误,那将是非常有帮助的。
% Defining the function
myfun = @(t,b)exp(t.*b(1)+b(2));
[y_a] = arrayfun(myfun,x_a);
% Using nonlinear least square minimization
beta0 = [1 1];
nlinfit(x,y,myfun, beta0)
提前致谢...:)
编辑:发现这是有效的。
g = fittype('exp(k*x + a)');
[fit1,gof,fitinfo] = fit(x',y',g,'StartPoint',[1 1]);