How to multiplay matrices in different dimensions?

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

1 Kommentar

Jan
Jan am 6 Jun. 2019
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?

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

Jan
Jan am 6 Jun. 2019
Bearbeitet: Jan am 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.

Weitere Antworten (0)

Kategorien

Gefragt:

am 6 Jun. 2019

Kommentiert:

am 10 Jun. 2019

Community Treasure Hunt

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

Start Hunting!

Translated by