Je souhaite remplacer les boucles for par bsxfun pour calculer la convolution dans Matlab. Après le script:convolution avec bsxfun au lieu de boucles dans 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.
Quand j'ai changé le code comme:
Received = bsxfun(@plus, Received, bsxfun(@conv, permute(squeeze(channel), [3 1 2]), Transmitted));
erreur est sorti, qui a dit: « deux dimensions non unique de tableaux d'entrée doit être adaptée ».
Comment corriger cette ligne? Merci beaucoup!
Cette boucle fonctionne pour vous? les dimensions des deux côtés du «+» ne sont pas les mêmes. – EBH