【问题标题】:MATLAB: How to slide a window over a matrix without padding?MATLAB:如何在没有填充的情况下在矩阵上滑动窗口?
【发布时间】:2016-02-29 00:58:37
【问题描述】:

我会用一个例子来说明我的问题

我有一个 3x100 矩阵,我想在它上面滑动一个 3x3 过滤器。 但是,我不希望 imfilter 使用任何填充,例如 X、对称、复制等,这将产生 3x100 输出。 我宁愿只在有真实数据时才应用滑动窗口,这样我的输出将是 1x (100 - 4)。

在 matlab 中最优雅(无循环)的方法是什么?

【问题讨论】:

  • 您是否将'conv' 选项(或任何其他选项)与imfilter 一起使用?而且你不能只使用C = imfilter(A,B);C = C(2,2:end-1);?对于如此小的尺寸,这可能非常有效。
  • 我认为你的意思是你的输出是 1 x 98 而不是 1 x 96

标签: matlab window


【解决方案1】:

您可以使用内置的conv2 函数,将“有效”作为形状参数,仅当过滤器和数据完全重叠时才会提供结果。

filtered = conv2(data, filter, 'valid');

【讨论】:

猜你喜欢
  • 2013-02-07
  • 1970-01-01
  • 2017-10-24
  • 2014-02-19
  • 2014-11-19
  • 2022-11-22
  • 2016-08-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多