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

窗口移动计算方法

例子


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

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

运行结果:

相关推荐
数模竞赛Paid answer2 分钟前
2026年华东杯数学建模B题医药物流安排问题解题全过程文档及程序
算法·数学建模·数据分析·华东杯
不会代码的小猴43 分钟前
21. 泛型编程上
开发语言·c++·笔记·算法
AI备案指南-满满1 小时前
大模型与算法备案全流程详解:从零到通过的完整指南
人工智能·算法·备案·大模型备案·算法备案
江畔柳前堤1 小时前
LLM 训练核心机制深度解析:Warmup、Cosine Decay 与 Perplexity 的完整知识体系
网络·人工智能·深度学习·算法·机器学习·语音识别
一只旭宝2 小时前
细讲C加加【9】C++ std::function与std::bind详解|仿函数、绑定器、类成员绑定、占位符、成员偏移指针
开发语言·c++·算法
良木林2 小时前
子串 - LeetCode hot 100
算法·leetcode·职场和发展
陌诺曦.3 小时前
Python扩展小练习
算法
coder!mq4 小时前
说几个常见的语法糖?
java·开发语言·算法
不爱学英文的码字机器4 小时前
推荐算法梳理,六种主流模型与九步训练流程
算法·机器学习·推荐算法