我在matlab中使用Nonlinearfit工具。 我一直收到以下错误:
使用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]);
答案 0 :(得分:0)