MATLAB: Sum of matrix times scalars

efficientmathmatrixscalar

Hi,
I have a series of 3×3 matrices T1, T2, T3 … TN. In addition, I have a series of scalars a1, a2, … aN. I wish to perform the following sum WITHOUT the use of a for-loop. T1*a1 + T2*a2 + …. TN*aN. I have solved this using a for loop currently, but wish to take advantage of Matlabs superior data structures i.e. 3D arrays, cells, etc.
Thank you for your help !

Best Answer

Hold your 3x3 matrices in a 3x3xN array caled T and your scalars in an Nx1 vector called a and do,
result=reshape(T,9,[])*a(:);
result=reshape(result,3,3);