曲线拟合误差MATLAB中的checkbounds函数

qmelpv7a  于 2023-10-23  发布在  Matlab
关注(0)|答案(1)|浏览(200)

我试着运行one example code here

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然而,我的代码昨晚工作得很好。我想不出我今天做的任何事情可能会导致这个问题。我确实改变了路径,但现在我将其设置为默认值,仍然遇到了这个问题。还有其他可能的原因吗?

bq3bfh9z

bq3bfh9z1#

显然,还有另一个checkbounds.m函数,而MATLAB不知何故使用了第一个函数
我运行了代码

which checkbounds -all

并得到
C:\Program Files\MATLAB\R2023a\toolbox\curvefit\curvefit\private\checkbounds.m %专用于curvefit
C:\Program Files\MATLAB\R2023a\toolbox\shared\optimlib\checkbounds.m
我通过添加所有路径解决了这个问题。我仍然不确定MATLAB如何选择当路径中有很多时运行哪些检查边界。

相关问题