フィルターのクリア

Fastest way to multiply each block of an array with another matrix

1 回表示 (過去 30 日間)
Mnr
Mnr 2015 年 12 月 23 日
コメント済み: Mnr 2015 年 12 月 23 日
Hello all,
I have a 12x4xN array which I would like to multiply each 12x4 block by a 4x16 matrix in order to get a 12x16xN array. Could somebody please help me with a fast way of doing that? Thank you!

採用された回答

James Tursa
James Tursa 2015 年 12 月 23 日
編集済み: James Tursa 2015 年 12 月 23 日
If you have a C compiler:
A = your 12 x 4 x N array;
B = your 4 x 16 matrix;
out = mtimesx(A,B);
You can find mtimesx here:
If you don't have a C compiler, then you can try MULTIPROD:
  1 件のコメント
Mnr
Mnr 2015 年 12 月 23 日
Thank you! I did it using mltiprod and it is perfect. Can I know what is the best way to install the C compiler as well?

サインインしてコメントする。

その他の回答 (1 件)

Andrei Bobrov
Andrei Bobrov 2015 年 12 月 23 日
Let A - your array with size [12x4xN]
B - matrix 4x16
sa = size(A);
sb = size(B);
out = zeros([sa(1),sb(2),sa(3)]);
for jj = 1:sa(3)
out(:,:,jj) = A(:,:,jj)*B;
end

カテゴリ

Help Center および File ExchangeData Types についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by