【发布时间】:2017-05-30 13:27:22
【问题描述】:
R中是否有任何函数可以对二维数组执行以下过程?
假设我有一个像这样的数组:
0 0 0 1 0 1
1 0 0 0 0 0
0 0 1 0 1 0
0 1 0 0 1 1
我想在水平方向上对该数组进行线性卷积,或者更详细地说,我想要一个函数来水平移动数组(添加零)并将其点积到主数组并总结所有元素结果数组。
所以结果将是一个线性向量
在本例中,结果将是:
0,2,1,2,1,9,1,2,1,2,0
例如,第二个数字是 2,是对主矩阵进行点积的结果,其中只有最后 2 列的副本作为第 1 列和第 2 列(其余列有其他零填充)并将所有结果相加元素在一起:
0 0 0 1 0 1
1 0 0 0 0 0
0 0 1 0 1 0
0 1 0 0 1 1
逐元素乘积:
0 1 0 0 0 0
0 0 0 0 0 0
1 0 0 0 0 0
1 1 0 0 0 0
结果:
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 1 0 0 0 0
最后将所有元素相加得到=2
【问题讨论】:
-
你的描述还是有点不清楚。你的意思是像
sum(m1 * m2)这样的逐点矩阵乘法吗?然后我希望第二个数字是 1 而不是 2。 -
@tonytonov 感谢提及,我编辑了这篇文章。请再读一遍。
标签: arrays r convolution