Vectorize many matrix multiplications using the third dimension

1 visualizzazione (ultimi 30 giorni)
I have collections of matrices, say two collections A and B of n matrices each, implemented as cell arrays. I would like to produce a third collection C by multiplying the matrices from the first two collections:
C = cell(1, n);
for i = 1:n
C{i} = A{i} * B{i};
end
Is it possible instead to use 3D arrays to vectorize this operation? Suppose that A and B are m x m x n arrays, where the ith page (where i ranges from 1 to n) of the arrays are the same as the ith cell in the previous example. Then, is it possible to write something that would look like
C = A * B;
to perform the multiplications in a way that is transparent for the pages of A and B?

Risposta accettata

James Tursa
James Tursa il 17 Apr 2019
  2 Commenti
Alec Poulin
Alec Poulin il 23 Apr 2019
Your function does exactly what I need and I was able to compile it without too much trouble. Thank you a lot!
Alec Poulin
Alec Poulin il 25 Apr 2019
Another question: Would there be a way to do the same thing with mldivide? I saw that there are pre-operations available for the matrices, but there is no inverse among them.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Operators and Elementary Operations in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by