在处理数据时,相信许多小伙伴都使用过fit函数来对数据进行拟合吧,但是fit函数只能用于曲线或者曲面的数据拟合,对于更复杂多元非线性方程则无能为力,例如如下代码:
% Matlab
x1=value_2m(:,4); %sst
x2=value_2m(:,3); %kd490
x3=value_2m(:,2); %choler
x4=value_2m(:,5); %time
y =value_2m(:,1)%pco2
ft = fittype( @(a,b,c,d,ab,ac,ad,bc,bd,cd,aa,bb,cc,dd, x1,x2,x3,x4)...
a.*x1 + b.*x2 + c.*x3 + d.*x4 +ab.*x1.*x2 + ac.*x1.*x3 + ad.*x1.*x4...
+ bc.*x2.*x3 + bd.*x2.*x4 + cd.*x3.*x4...
+ aa.*x1.*x1 + bb.*x2.*x2 + cc.*x1.*x1 + dd.*x1.*x1,...
'independent', {'x1','x2','x3','x4'},...
'dependent', 'y' );
fit([x1(:),x2(:),x3(:),x4(:)],y(:),ft)
报错如下:
错误使用 fittype/testCustomModelEvaluation (line 12)
Expression a.*x1+b.*x2+c.*x3+d.*x4+ab.*x1.*x2+ac.*x1.*x3