matlab 滑动窗口代码,matlab – 带滑动窗口元素的矩阵

使用

bsxfun创建正确的索引应该肯定会有所帮助:

ind = bsxfun(@plus, 1:W, (0:X:numel(T)-W).');

out = T(ind);

创建正确的索引是第一步,由第一行代码描述.这段代码的作用是创建一个2D矩阵,其中每一行都是每个感兴趣的窗口访问的元素.如果你想直观了解代码如何生成索引,请特别注意第一种情况,即X = 1;和W = 3;

我们可以看到第一行包括访问元素1,2,3.第二行包括访问元素2,3,4 ……直到最后一行,即5,6,7.我们可以看到我们必须访问窗口中的相邻元素,因此基本索引需要从1,2,3或一般从1到W.我们现在需要偏移这些索引,以便它们以正确的元素为中心每个窗口T.第一个窗口的偏移量仅为0,第二个窗口的下一个偏移量仅为1,直到最后一行为3.我们看到,对于每一行,随着行的增加,我们再向基本索引添加1个.因此,我们为第二行的每个基本索引添加1,然后为第三行中的每个基本索引添加2,依此类推.如果使用偏移索引添加基本索引,则最终获得正确的索引以访问T中的正确元素.

同样,如果X = 2;并且W = 3;,我们看到我们仍然有1,2,3的基本索引.但是,现在访问的正确元素是第一行的1,2,3,然后是第二行的3,4,5然后是第5排,第6排,第7排.对于每一行,我们现在将基本索引偏移2而不是1.因此,第二行我们为每个基本索引添加2,然后我们为第三行的每个基本索引添加4,依此类推.

通常,使用向量1:W创建基本索引,并且使用向量0:X:numel(T)-W创建偏移索引.需要减去W,以便在按照要求对信号进行采样时不会超出范围.为了创建我们刚才谈到的这些索引,bsxfun为我们处理了这个问题.

我们创建一个1:W的行向量,它对应于基本索引和列向量(0:X:numel(T)-W).它对应于每个窗口的偏移量.请注意,第一个偏移从0开始,然后我们增加X个量以确保计算

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值