The most efficient way to calculate multiplication and summation of two large matrices
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Mingyang Sun
le 11 Mar 2023
Commenté : Mingyang Sun
le 12 Mar 2023
Support I have two matrices and , I would like to calculate following:
where matrix , and represent each columne of two matrices
I was wondering, what is the most efficient way to calculate matrix C? Many thanks!
0 commentaires
Réponse acceptée
Bruno Luong
le 11 Mar 2023
Modifié(e) : Bruno Luong
le 11 Mar 2023
It is just a scaling of matrix multiplication, if you haven't recorgnize it
A=rand(300,1000);
B=rand(300,1000);
tic
C1=(A*B')/size(A,2);
toc
% or
tic
C2 = sum(pagemtimes(reshape(A,size(A,1),1,[]),reshape(B,1,size(B,1),[])),3)/size(A,2);
toc
% or
tic
C3 = sum(reshape(A,size(A,1),1,[]).*reshape(B,1,size(B,1),[]),3)/size(A,2);
toc
norm(C1-C2,'fro')
norm(C1-C3,'fro')
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Resizing and Reshaping Matrices 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!