0
点赞
收藏
分享

微信扫一扫

matlab划分拟合后的函数

玉字璧 2022-05-02 阅读 93
matlab

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

这样就可以将函数划分为任意个区域了

举报

相关推荐

0 条评论