【发布时间】:2016-01-11 05:51:06
【问题描述】:
我在 matlab 中使用非线性拟合工具。 我不断收到以下错误:
使用 nlinfit 时出错(第 210 行) MODELFUN 必须是返回与 Y (1×100) 大小相同的拟合值向量的函数。您提供的模型函数返回 1×2 的结果。 大小不匹配的一个常见原因是在函数中使用矩阵运算符(、/、^)而不是相应的元素运算符(.、./、.^)。
我发现这个question 与我的非常相似,但我仍然遇到同样的错误。我尝试在控制台上计算 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]);
【问题讨论】:
标签: matlab non-linear-regression