Hi all. I'm trying to optimize matrix multiplication. What I am trying to do is take a stack of 3 x 3 matrices and multiply each matrix by one vector from an array of vectors .
I did find an implementation not using multiprod that solves this issue without for loops, but makes extensive use of repmat and performs worse than if I were to just use a for loop.
So for the case below: multiprod(A,B) would return [1 4 7] and [12 15 18].
A = [1 2 3; 4 5 6; 7 8 9; 10 11 12; 13 14 15; 16 17 18;] B = [1 0; 0 0; 0 1]
Currently, multiprod assumes that you want to multiply each 3×3 by the 3×2 and as a result I get extraneous data. Adding the extra parameters about the inner dimensions to the function call did not work either.
So I guess my question is…can multiprod solve this issue and I'm just not implementing it correctly or am I better off using for loops?
Best Answer