Multiply each row of a matrix by a matrix

8 次查看(过去 30 天)
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.

回答(1 个)

James Tursa
James Tursa 2017-1-20
编辑:James Tursa 2017-1-20
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');

类别

Help CenterFile Exchange 中查找有关 Matrix Indexing 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by