我想用bsxfun替換for循環來計算Matlab中的卷積。 以下是該腳本:與bsxfun的卷積代替Matlab中的循環
for Rx = 1:Num_Rx
for Tx= 1:Num_Tx
Received(Rx,:)=Received(Rx,:)+conv(squeeze(channel(Rx,Tx,:))', Transmitted(Tx,:));
end
end
% Received is a Num_Rx by N matrix, Transmitted is a Num_Tx by N matrix and channel is a 3D matrix with dimension Num_Rx, Num_Tx, N.
當我改變代碼:
Received = bsxfun(@plus, Received, bsxfun(@conv, permute(squeeze(channel), [3 1 2]), Transmitted));
錯誤就出來了,上面寫着:「輸入數組的兩個非單維必須匹配」。
我該如何糾正這條線?非常感謝!
這個循環是否適合你? '+'兩邊的尺寸是不一樣的。 – EBH