

老是显示报错,可是不晓得怎么改了,有一个散点图出来,但是相关系数不行,跑不了
报错Objective function is returning undefined values at initial point. lsqcurvefit cannot continue.这句话的意思是你的N(t)函数有问题,在初始点的时候有未被定义的值(无意义的值例如:1/0,log(-1)这种)
这里我不清楚r的初始值是哪里来的,还有N0不知道具体值是多少,给不出具体的函数,我把你这个函数换成fun=b1*t^2+b2t,

一切都能正常运行,相关系数也能得出是0.9902.

代码我放在下面:
x0=[400 0.5];
% x0 初始值
xdata=[6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30];
ydata=[296 369 362 431 391 489 527 563 689 753 823 869 1038 1119 1216 1354 1488 1600 1817 1993 2200 2428 2706 2947 3352];
% xdata,ydata 拟合数据
fun=
@(x,xdata)x(1)*xdata.^2+x(2)xdata;
[x,resnorm]=lsqcurvefit(fun,x0,xdata,ydata);
% 曲线优化
parameters=[x,resnorm];
plot(xdata,fun(x,xdata),xdata,ydata,'');
%画出优化后的曲线
R=corrcoef(ydata,fun(parameters,xdata));R=R(1,2)
和你的代码类似,我只是改了个拟合函数。