??? Error using ==> nlinfit at 127 MODELFUN should return a vector of fitted values the same length

来源:互联网 发布:win平板装ubuntu 编辑:程序博客网 时间:2024/06/05 11:23

??? Error using ==> nlinfit at 127 MODELFUN should return a vector of fitted values the same length 

这个问题应该是利用matlab进行非线性拟合时经常会遇到的问题

它的中文意思应该是:“模板函数应该返回一个与y等长的向量”

看一下程序:

x=[3.2,3.6,3.8,4,4.2,4.5,4.8,5,5.3,5.4,5.6,5.8,6,6.2,6.4,6.6,6.9,7.1]';y=[0.38,0.66,1,0.77,0.5,0.33,0.66,0.83,0.33,1,0.33,0.5,0.33,0.71,0.71,1,0.87,0.83]';myfunc = inline('1./(beta(1)+beta(2).*exp(-x))','beta','x');beta0 = [0.2,0.2]';beta = nlinfit(x,y,myfunc,beta0);

上面的程序是正确的,出现这个问题是因为myfunc定义为隐函数,所以算术操作时都需要变为点乘或者点除,注意点除和点乘都需要保证

再例:

y=beta(1).*exp(-beta(2).*1000./(8.314*x));



1 0
原创粉丝点击