multiprod implementation question for matrix multiplication optimization
6 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hi all. I'm trying to optimize matrix multiplication. What I am trying to do is take a stack of 3 x 3 matrices and multiply each matrix by one vector from an array of vectors .
I did find an implementation not using multiprod that solves this issue without for loops, but makes extensive use of repmat and performs worse than if I were to just use a for loop.
So for the case below: multiprod(A,B) would return [1 4 7] and [12 15 18].
A = [1 2 3; 4 5 6; 7 8 9; 10 11 12; 13 14 15; 16 17 18;]
B = [1 0; 0 0; 0 1]
Currently, multiprod assumes that you want to multiply each 3x3 by the 3x2 and as a result I get extraneous data. Adding the extra parameters about the inner dimensions to the function call did not work either.
So I guess my question is...can multiprod solve this issue and I'm just not implementing it correctly or am I better off using for loops?
0 commentaires
Réponse acceptée
Matt J
le 11 Fév 2016
Modifié(e) : Matt J
le 11 Fév 2016
>> A = cat(3,[1 2 3; 4 5 6; 7 8 9],[ 10 11 12; 13 14 15; 16 17 18])
A(:,:,1) =
1 2 3
4 5 6
7 8 9
A(:,:,2) =
10 11 12
13 14 15
16 17 18
>> B=reshape(B,3,1,[])
B(:,:,1) =
1
0
0
B(:,:,2) =
0
0
1
>> mtimesx(A,B)
ans(:,:,1) =
1
4
7
ans(:,:,2) =
12
15
18
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Audio Processing Algorithm Design dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!