如何在Python中逐列对两个矩阵进行线性卷积

问题描述 投票:1回答:1

我有两个矩阵,我需要在矩阵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工作的新手!!

python matlab convolution
1个回答
1
投票

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

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

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

祝你好运

© www.soinside.com 2019 - 2024. All rights reserved.