Matrix multiplication between 2d matrix and slice of 3d array

4 visualizzazioni (ultimi 30 giorni)
I have two matrices A (3,3,x) and B (3,3) where x is a variable, known value and typically on the order of thousands. I need to compute the matrix multiplication of these two, I know this can be done by
function [ out ] = mat_mult( A,B )
[~,~,np] = size(A);
out = zeros(size(A));
for i=1:np
out(:,:,i) = A(:,:,i)*B;
end
end
but I figure there is a more efficient way to do this than for loops, especially for MATLAB. Unforunately, I am not quite sure how to vectorize this.

Risposta accettata

Athul Prakash
Athul Prakash il 1 Gen 2020
Hey Morten,
You can check out 'MULTIPROD' - from File Exchange (linked below). It covers your requirements exactly,
( Please note that tools available on File Exchange are provided by the community and not created by Mathworks. The Mathworks does not provide any guarantees for such tools.)

Più risposte (0)

Categorie

Scopri di più su Creating and Concatenating Matrices in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by