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

窗口移动计算方法

例子


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

已知一个数列: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

运行结果:

相关推荐
JieE21212 小时前
LeetCode 226. 翻转二叉树|JS 递归超详细拆解,二叉树入门经典题
javascript·算法
JieE21213 小时前
LeetCode 104. 二叉树的最大深度|递归思路超详细拆解
javascript·算法
vivo互联网技术17 小时前
CVPR 2026 | 全新强化学习框架 BeautyGRPO:重塑真实人像
算法·大模型·cvpr·影像
Darling噜啦啦18 小时前
列表转树算法深度解析:从 Map 到 Reduce 的两种实现,面试高频考点
数据结构·算法·面试
用户497863050731 天前
(一)小红的数组操作
算法·编程语言
怕浪猫1 天前
Electron 系列文章封面图
算法·架构·前端框架
徐小夕1 天前
JitWord 3.0 正式发布,高精度Word异构解析+复杂组件兼容,打造web端协同Word编辑器
前端·vue.js·算法
通信小呆呆2 天前
当算法有了“五感”:多模态数据融合如何向人体感官协同学习?
人工智能·学习·算法·机器学习·机器人
xiao5kou4chang6kai42 天前
MATLAB机器学习、深度学习--从数据预处理到模型训练
深度学习·机器学习·matlab·数据预处理