中国汽车工程师之家--聚集了汽车行业80%专业人士 

论坛口号:知无不言,言无不尽!QQ:542334618 

本站手机访问:直接在浏览器中输入本站域名即可 

  • 1608查看
  • 0回复

多组数据分别进行 一次线性拟合 然后插值

[复制链接]

  • TA的每日心情
    无聊
    10-1-2016 13:38
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 15-10-2011 09:52:31 | 显示全部楼层 |阅读模式

    汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师


    现有i01~i15 十五组1024×1280的矩阵
    x为1×15的矩阵;
    i01到i15每一个对应的点组成新的矩阵然后与x一次线性拟合,如此该得到1024×1280个线性拟合结果,我想把它先保存起来,后面插值的时候要用的拟合的函数
    i16同样为1024×1280的矩阵,它每个点的值对应之前的每个拟合过的函数(也就是calibration curve )可求得每个点的y值;
    程序如下:
    x=[0.2,8,17.8,25.1,32.3,46.5,50.2,54.5,58.1,62.2,66.3,70.2,75.2,80.3,82.7];
    fp=cell(1024,1280);
    for i=1:1024
        for j=1:1280
             y=[i01(i,j),i02(i,j),i03(i,j),i04(i,j),i05(i,j),i06(i,j),i07(i,j),i08(i,j),i09(i,j),i10(i,j),i11(i,j),i12(i,j),i13(i,j),i14(i,j),i15(i,j)];
            fp{i,j}=polyfit(x,y,1); %这样每一个fp的细胞元中,都存有k和b
        end
    end
    i16n=polyval(fp,i16);% 其中,i16为1024×1280的矩阵
    figure
    imagesc(i16n)程序出错,希望高手指点下
    ??? Error using ==> polyval at 50  
    P must be a vector.
    cell中的该如何调出来用呢
    

    该用户从未签到

    发表于 21-4-2025 01:57:38 | 显示全部楼层
    根据您的需求,我们可以按照以下步骤进行编程处理:

    1. 对i01至i15每一组矩阵数据进行一次线性拟合,存储每个点的拟合函数。这个过程可以通过使用线性回归算法实现,例如最小二乘法。
    2. 将得到的线性拟合结果保存起来,以便后续插值使用。这些拟合函数可以存储为数组或矩阵形式,方便后续调用。
    3. 对于i16矩阵,根据每个点的x值,通过之前保存的拟合函数计算对应的y值。这个过程即插值。可以通过遍历矩阵中的每个元素,调用相应的拟合函数进行计算。

    程序实现大致如下:

    首先,对i01至i15每一组数据进行线性拟合,得到一系列的拟合函数。然后,对于i16矩阵中的每个点,根据x值查找对应的拟合函数,计算y值。最后,将计算得到的y值存储在新的矩阵中。

    关于代码部分,由于涉及到具体实现细节和编程语言的选择,这里无法给出完整的代码示例。但您可以根据以上思路,结合您所使用的编程语言和数据处理库来实现所需功能。
    回复 支持 反对

    使用道具 举报

    快速发帖

    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

    GMT+8, 6-7-2025 20:41 , Processed in 0.473986 second(s), 35 queries .

    Powered by Discuz! X3.5

    © 2001-2013 Comsenz Inc.