How to multiplay matrices in different dimensions?

I would like to multiply a 3D matrice with a 2D matrice.

1 Comment

Then do this. Remember that this operation is not defined mathematically, so you have to explain which result you want. Do you mean a matrix multiplication, or an elementwise product?

Sign in to comment.

 Accepted Answer

Jan
Jan on 6 Jun 2019
Edited: Jan on 6 Jun 2019
Perhaps:
a = rand(2,2,3);
b = [2, 2; 4, 4]
% Elementwise - auto-expanding since R2016b:
r = a .* b
% Matrix multiplication:
r = zeros(2, 2, 3);
for k = 1:3
r(:, :, k) = a(:, :, k) * b;
end
If the later is wanted, you can vectorize the code or use some tools from the FileExchange to avoid the loop.

More Answers (0)

Categories

Asked:

on 6 Jun 2019

Commented:

on 10 Jun 2019

Community Treasure Hunt

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

Start Hunting!