x = linspace(1,100);
y = 5 + 7*log(x);
myfittype = fittype('a + b*log(x)',...
'dependent',{'y'},'independent',{'x'},...
'coefficients',{'a','b'})
myfit = fit(x',y',myfittype)
我收到下面的错误消息
Checkbounds错误(第26行)
如果lenlb > nvars
fit中的错误>iFit(第275行)[lowerbnd,upperbnd,anError,aWarning] = checkbounds(lowerbnd,upperbnd,numcoeff);
拟合误差(第116行)
[fitobj,goodness,output,convmsg] = iFit(xdatain,ydatain,fittypeobj,.
x1c 0d1x然而,我的代码昨晚工作得很好。我想不出我今天做的任何事情可能会导致这个问题。我确实改变了路径,但现在我将其设置为默认值,仍然遇到了这个问题。还有其他可能的原因吗?
1条答案
按热度按时间bq3bfh9z1#
显然,还有另一个checkbounds.m函数,而MATLAB不知何故使用了第一个函数
我运行了代码
并得到
C:\Program Files\MATLAB\R2023a\toolbox\curvefit\curvefit\private\checkbounds.m %专用于curvefit
C:\Program Files\MATLAB\R2023a\toolbox\shared\optimlib\checkbounds.m
我通过添加所有路径解决了这个问题。我仍然不确定MATLAB如何选择当路径中有很多时运行哪些检查边界。