matlab lsqcurvefit 函数的使用
函数 function y=fun2(x,tdata)
y=2/(1/x(1)+2*exp(-x(2)*tdata)*x(3));
主程序
tdata=[0.25 0.5 0.75 1 1.5 2 2.5 3 3.5 4 4.5 5 6 7 8 9 10 11 12 13 14 15 16];
ydata=[30 68 75 82 82 77 68 68 58 51 50 41 38 35 28 25 18 15 12 10 7 7 4];
plot(tdata,ydata)
tdata1=tdata(1:5);
ydata1=ydata(1:5);
x0=[0,0,0];
xx1=lsqcurvefit('fun2',x0,tdata1,ydata1)
tdata2=tdata(5:end);
ydata2=ydata(5:end);
x0=[-0.1767,108.3979,0];
xx2=lsqcurvefit('fun2',x0,tdata2,ydata2)
怎么老是不对呢
Error using ==> mrdivide
Matrix dimensions must agree.
不懂啊,求大侠指教。 解决问题再追加分数。。
答案:你的问题出在fun2而不在lsqcurvefit上。该用./(点除)的/(除).改成下面的就可以了。
function y=fun2(x,tdata)
y=2./(1./x(1)+2*exp(-x(2)*tdata)*x(3));
上一个:在matlab中如何根据拟合图得到函数?
下一个:急!!!!高分求函数最大化问题。希望得到matlab或者lingo程序,请高手指点。 问题见附件。