我正在尝试理解np.correlate()函数中的“相同”模式。我在某个网站上看到了定义,但是我不明白它是如何进行计算以获得最终数组的。

如何从此:np.correlate([2, 1], [1, 1], 'same')得到此:array([2, 3])

有人可以做一个计算例子吗?

最佳答案

mode='same'仅表示您将得到与最大输入数组大小相等的结果。它是完整互相关的子集(也有一个mode='full'选项)。在您的示例中,我们有:

  2 1
1 1
------
0+2+0 = 2


(点积,零填充(如果适用),然后“滑动”)

  2 1
  1 1
-----
  2+1 = 3


因此,[2,3]的答案。

完全互相关将继续滑动。

  2 1
    1 1
-------
  0+1+0 = 1


因此,完整的互相关将为[2,3,1]

注意:这些关键字来自这些函数的MATLAB实现

10-04 15:49