如何在python

时间:2019-10-11 13:50:14

标签: python matlab convolution

我有两个矩阵,我需要对矩阵A的每一列与矩阵B的对应列进行卷积,并将结果存储在矩阵y中。

例如,A是维数10 x 5的复数矩阵,而矩阵b也是维数7 x 5的复数矩阵,因此我可以在matlab中执行以下操作:

A = randi(10,5) + 1j*randi(10,5); 
B = randi(7,5) + 1j*randi(7,5); 
for i = 1 : 5 
    y(:,i) = conv(A(:,i),B(:,i));
end

因此,当我在python中建立该步骤时,如下所示:

for i in range(5):
    y[:,i]= np.convolve(A[:, i], B[:, i])

它给我一个

的错误
UnboundLocalError: local variable 'y' referenced before assignment

请任何人都可以帮助解决该问题。我仍然是通过python工作的新手!!

1 个答案:

答案 0 :(得分:1)

如上面的注释所述,您可以在for循环之前添加此行,

y = np.zeros((10+7-1,5)) 

您知道两个向量的卷积结果向量的长度是它们长度的总和-1,因为我使用了(10 + 7-1),并且对任何两个向量进行了概括。

祝你好运