Multiply each row of a matrix by a matrix

11 views (last 30 days)
Sidafa
Sidafa on 20 Jan 2017
Commented: Matt J on 20 Jan 2017
Say I have the following matrix
B = [1 2 3;4 5 6;7 8 9;10 11 12]
and another matrix
A = [a b c;d e f;g h i]
How do I multiply each row of matrix B by the matrix A (without using a for loop), i.e
for i = 1:4
c(i) = B(i,:)*A*B(i,:)'
end
many thanks in advance.

Answers (1)

James Tursa
James Tursa on 20 Jan 2017
Edited: James Tursa on 20 Jan 2017
c = sum(bsxfun(@times,B',A*B'));
or another way, but does a lot of extra work for the off-diagonals that are discarded:
c = diag(B*A*B');

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!