The most efficient way to calculate multiplication and summation of two large matrices
2 ビュー (過去 30 日間)
古いコメントを表示
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 件のコメント
採用された回答
Bruno Luong
2023 年 3 月 11 日
編集済み: Bruno Luong
2023 年 3 月 11 日
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')
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Resizing and Reshaping Matrices についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!