How can I multiply the columns of one matrix by another matrix most efficiently?

2 ビュー (過去 30 日間)
Brandon
Brandon 2016 年 7 月 12 日
コメント済み: Brandon 2016 年 7 月 12 日
I need to multiply the columns of one matrix by the columns of another matrix element-wise, and I would like to avoid loops. So far, I know that this will accomplish what I want done, but I would like to vectorize it if possible.
A = [1 2 3; 4 5 6; 7 8 9];
B = [1 1 1; 2 2 2; 3 3 3];
j = 1:size(A,2);
for i = 1:size(A, 2) % loop over columns
result(:, i*j) = bsxfun(@times, A(:, i), B);
end
Basically, given 2 MxN matrices my code outputs an MxN^2 matrix. Is there any built in function that will allow me to do this without the loop?
Thanks.

採用された回答

Andrei Bobrov
Andrei Bobrov 2016 年 7 月 12 日
編集済み: Andrei Bobrov 2016 年 7 月 12 日
reshape(bsxfun(@times,B,permute(A,[1,3,2])),size(A,1),[])

その他の回答 (1 件)

Azzi Abdelmalek
Azzi Abdelmalek 2016 年 7 月 12 日

カテゴリ

Help Center および File ExchangeOperators and Elementary Operations についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by