matlab lsqcurvefit 曲线拟合时程序老出错程序如下:function f =curvefun(x,XDATA)f = x(1)*log10(1 + 1/(x(2)+XDATA.^x(3)));主程序为:XDATA = [1,2,3,4,5,6,7,8,9];YDATA = [0.726,0.151,0.055,0.028,0.018,0.009,0.005,0.003,0.003]
网友回答
%错误在 function 内:
% 1. 向量乘除要加点;
% 2. 除零情况未处理.
function f =curvefun(x,XDATA)
xx=x(2)+XDATA.^x(3);
f = x(1).*log10(1 + 1./(xx+eps*(xx==0)));
% 代码仅供参考