matlab可以实现函数的拟合和插值操作,这里给出matlab拟合函数后我们如何使用,并将函数划分为N个区间
第一步:拟合函数
matlab中自带工具箱(Curve Fitting),这个有很多的使用方法介绍
第二步:导出拟合的函数信息
在Curve Fitting Tool 的拟合界面中选择 文件 ->Generate Code 这样我们会得到一个文件里面包含一个函数
例:
这里就是生成函数代码的格式 (x,y:输入:你用来拟合数据用的那个数据)
fitresult:是一个参数和函数信息的文件,下一步介绍如何调用参数
gof:返回的是拟合函数的好坏指标
第三步:利用信息划分区域
这里我的x,y是a[1,80]的向量 目标是将函数划分为256个区域;
[fitresult, gof] = createFit2(x,y); % 调用生成的函数
a1 = fitresult.a1; %用这种方式获得拟合函数的各种参数
b1 = fitresult.b1;
c1 = fitresult.c1;
a2 = fitresult.a2;
b2 = fitresult.b2;
c2 = fitresult.c2;
a3 = fitresult.a3;
b3 = fitresult.b3;
c3 = fitresult.c3;
a4 = fitresult.a4;
b4 = fitresult.b4;
c4 = fitresult.c4;
a5 = fitresult.a5;
b5 = fitresult.b5;
c5 = fitresult.c5;
a6 = fitresult.a6;
b6 = fitresult.b6;
c6 = fitresult.c6;
a7 = fitresult.a7;
b7 = fitresult.b7;
c7 = fitresult.c7;
X_temp = [0:(2*pi)/256:2*pi];
Y = zeros(1,256);
for i = 1:256
z = X_temp(i);
Y(i) = a1*sin(b1*z+c1) + a2*sin(b2*z+c2) + a3*sin(b3*z+c3) + a4*sin(b4*z+c4) + ...
a5*sin(b5*z+c5) + a6*sin(b6*z+c6) + a7*sin(b7*z+c7);
end
这样就可以将函数划分为任意个区域了