matlab 曲线拟合函数问题
请问:
该函数方程函数值和ydata的维数不一样在什么地方?检查了n遍,都检查不出问题。
function F= myfun2(x,xdata)
F=100.*((x.*36.*xdata)/(2.*xdata.^0.5+45.))^0.5
xdata=[53.59 82.53 97.21]
ydata=[19.94 22.37 18.49]
x0=0.05
[x,resnorm]=lsqcurvefit(@myfun2,x0,xdata,ydata)
运行错误提示如下:
??? Error using ==> lsqcurvefit at 253
Function value and YDATA sizes are incommensurate.
Error in ==> re2 at 4
[x,resnorm]=lsqcurvefit(@myfun2,x0,xdata,ydata)
myfun2函数的输出要和ydata相等,你的myfun2输出只是一维纳闹的,ydata确是三维的,所以报错了。
如果ydata确实是三维的,那就洞枯罩是函数中的(x*36*xdata)/(2*xdata.^0.5+45.) 错了,不知道你的真败仿实意图是什么,也不知道你知道不知道向量除向量意味着什么,不过看来很明显你不太清楚.的用法(别每个数都加.)。不知道你的函数myfun2的形式到底是什么样的,如果你是要对每个xdata运算,则改为F=100*((x*36*xdata)./(2*sum(xdata.^0.5)+45.)).^0.5;就行了,但结果并不满足lsqcurvefit可解的要求。
你除号和首灶最后一个乘方为锋蔽什么不者基扮加点?
F=100*((x*36.*xdata)./(2*xdata.^0.5+45)).^0.5