我有两个矩阵,我需要对矩阵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工作的新手!!
答案 0 :(得分:1)
如上面的注释所述,您可以在for循环之前添加此行,
y = np.zeros((10+7-1,5))
您知道两个向量的卷积结果向量的长度是它们长度的总和-1,因为我使用了(10 + 7-1),并且对任何两个向量进行了概括。
祝你好运