兄弟姐妹好啊,今天编程遇到问题麻烦大家给指点下吧谢谢啦 function Z=myfun(k,xdata) y1=(215.33*xdata+18*(1-xdata))/(0.052*xdata.^0.1178-0.1074*xdata.^0.3458+0.9973); y2=215.33/(0.9452*xdata); y3=18/(0.9971*xdata); H=y1-y2-y3; Z=k(1)*xdata.^k(2)+k(3)*xdata.^k(4)+k(5); Z=H; clear; xdata =[0 0.1002 0.2004 0.3014 0.4105 0.4947 0.5827 0.7022 0.7686 0.8533 1]; ydata =[0.9941 0.9837 0.9739 0.9653 0.9582 0.9528 0.949 0.9442 0.942 0.9405 0.9384]; k=[1 1 1 1 1]; k=lsqcurvefit('myfun',[1 1 1 1 1],xdata,ydata) ydata1=myfun(k,xdata); plot(xdata,ydata,'r*',xdata,ydata1,'g*') [ydata' ydata1'] 错误报告是 ??? Error using ==> c:/matlab6p5/toolbox/optim/private/lsqncommon User supplied function ==> myfun failed with the following error: Error using ==> / Matrix dimensions must agree. Error in ==> C:\MATLAB6p5\toolbox\optim\lsqcurvefit.m On line 129 ==> [x,Resnorm,FVAL,EXITFLAG,OUTPUT,LAMBDA,JACOB] = ... Error in ==> C:\MATLAB6p5\work\Untitled3.m On line 5 ==> k=lsqcurvefit('myfun',[1 1 1 1 1],xdata,ydata) |
1 条回复