【关于窗口移动求和的两种计算方法】

窗口移动计算方法

例子


在很多算法中都会涉及到窗口滑动,比如基于新息序列更新的自适应卡尔曼滤波器算法中便会使用到。

已知一个数列:OCV = 1;2;3;4;5;6;7;8;9;10;11;12;13;14;15,定义窗口长度为5,每次滑动一个数位,编写程序求Prk。以MATLAB为例,有如下两个方法,直接看程序。

方法1

matlab 复制代码
OCV                  = [1;2;3;4;5;6;7;8;9;10;11;12;13;14;15];
L                    = 1;
n                    = 5;
S                    = 0;
ts                   = length(OCV);
Error_x              = zeros(1,n);
for i                = 1:1:ts
if i                 <= n
        Error_x(1,i) = OCV(i);
        S            = S + Error_x(1,i);
        Prk          = S/i;
else
    S                = S - Error_x(1,L);
    Error_x(1,L)     = OCV(i);
    S                = S + Error_x(1,L);
    L                = L+1;
    if  L            > n
        L            = 1;
    end  
    Prk              = S/n;
end
a                    = Prk
end

方法2

matlab 复制代码
OCV                  = [1;2;3;4;5;6;7;8;9;10;11;12;13;14;15];
n                    = 5;
S                    = 0;
ts                   = length(OCV);
Error_x              = zeros(1,n);
for i                = 1:1:ts
if i                 <= n
        Error_x(1,i) = OCV(i);
        S            = S + Error_x(1,i);
        Prk          = S/i;
else
    S                = 0;
    for     j        = 1:1:(n-1)
        Error_x(1,j) = Error_x(1,j+1);
        S            = S + Error_x(1,j);
    end
    Error_x(1,n)     = OCV(i);
    S                = S + Error_x(1,n);
    Prk              = S/n;
    
end
a                    = Prk
end

运行结果:

相关推荐
Web极客码2 分钟前
如何用三段式确定性剪枝,为 LLM Agent 砍掉 35% 的 Token 成本?
服务器·人工智能·算法·机器学习
程序猿乐锅6 分钟前
【数据结构与算法 | 第六篇】力扣1109,1094差分数组
java·算法·leetcode
wabs66640 分钟前
关于图论【广度优先搜索的理论基础】
算法·图论·宽度优先
孤魂23344 分钟前
逻辑回归算法
算法·机器学习·逻辑回归
weixin_377634841 小时前
【多模型预测】 如何合理融合多个预测分值
算法·机器学习·概率论·预测·agent预测
2zcode1 小时前
基于MATLAB深度学习的乳腺钼靶影像乳腺癌智能诊断系统设计与实现
开发语言·深度学习·matlab·乳腺癌
无风听海1 小时前
Claude Agent Skills 的四种设计模式;从渐进式披露到最小权限
java·算法·设计模式
37.2℃9951 小时前
专业的Claude Design解决方案
前端·算法
め.1 小时前
定点数运算库
算法·unity
dyxal1 小时前
最长公共子序列(LCS)
python·算法