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

窗口移动计算方法

例子


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

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

运行结果:

相关推荐
王老师青少年编程30 分钟前
csp信奥赛C++高频考点专项训练之贪心算法 --【哈夫曼贪心】:合并果子
c++·算法·贪心·csp·信奥赛·哈夫曼贪心·合并果子
叼烟扛炮1 小时前
C++第二讲:类和对象(上)
数据结构·c++·算法·类和对象·struct·实例化
天疆说1 小时前
【哈密顿力学】深入解读航天器交会最优控制中的Hamilton函数
人工智能·算法·机器学习
wuweijianlove2 小时前
关于算法设计中的代价函数优化与约束求解的技术7
算法
leoufung2 小时前
LeetCode 149: Max Points on a Line - 解题思路详解
算法·leetcode·职场和发展
样例过了就是过了2 小时前
LeetCode热题100 最长公共子序列
c++·算法·leetcode·动态规划
HXDGCL3 小时前
矩形环形导轨:自动化循环线的核心运动单元解析
运维·算法·自动化
谭欣辰3 小时前
C++ 排列组合完整指南
开发语言·c++·算法
代码中介商3 小时前
银行管理系统的业务血肉 —— 流程、状态机、输入校验与持久化(下篇)
c语言·算法
foundbug9994 小时前
自适应滤除直达波干扰的MATLAB实现
开发语言·算法·matlab