Multiply each row of a matrix by a matrix
11 views (last 30 days)
Show older comments
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.
0 Comments
Answers (1)
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');
1 Comment
See Also
Categories
Find more on Matrix Indexing in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!