MATLAB: Vector-Matrix multiplication along third dimension

array multiplicationdot productMATLABmatrix multiplicationsimulinksimunlink

Hi,
we consider a N long vector (v = v1, v2, …, vN) and a m x m x N array (A = A1, A2, …, AN. Ai is a m x m matrix). The goal is ultimately to produce matrix B: B = v1*A1 + v2*A2 + … + vN*AN
The trick is we may not us a for loop here. N is not known in advance. All this has to be reproduced in SIMULINK. I'm aware of the Array-Vector Multiply block in the DSP Toolbox, but we'd like to work without that toolbox.
Thank you for your help.
All the best, Guillaume

Best Answer

B = bsxfun(@times,A,reshape(v,1,1,[]));