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