matlab基础 数据拟合

    最近要用matlab处理一批数据 ,作非线性拟合。matlab拟合数据有工具箱cftool (支持多项式 指数  高斯多种函数拟合.)

   当x-y有对应关系时,即x,y都是已知数据集,用 polyfit函数  可以作多项式拟合 polyfit(x,y,n)  n表示多项式次数

   实际中往往自变量和因变量 有参数待定  需要用模型反求待定参数, 使得在此模型下,得到最优参数,则可以尝试nlinfit

  nlinfit支持多个自变量   y=f(x1,x2,----)


自定义拟合函数

 function rs=nonfit(w,r)

           %w为待定系数  r为传入自变量x ,這里有 五个自变量  y=f(x1,x2,x3,x4,x5)

           rs=calKBS(w(1).*r(:,1)+w(2).*r(:,2)+w(3).*r(:,3)+w(4).*r(:,4)+(1-w(1)-w(2)-w(3)-w(4)).*r(:,5))./w(5);

  end

    %  函数调用    w0为初始值

     result= nlinfit(x(:,:,20);,density,@nonfit,w0);


   附  squeeze函数可以去除矩阵多余维数  如 3*1*6*1*7维度数据 变为3*6*7

你可能感兴趣的:(matlab基础)