2D matrix multiply with 3D array
1 回表示 (過去 30 日間)
古いコメントを表示
Hi,
I have two 2D matrix u and v, and a 3D array B. I want to perform the following calculations, for example
u=rand(200,300);
v=rand(200,300);
B=rand(60,60,300)
c=0;
for j=1:300
u1=0;
v1=0;
for k=1:200
u1=u1+u(k,j)*B(:,:,k);
v1=v1+v(k,j)*B(:,:,k);
end
c=c+u1.*v1;
end
Due to two for loops, it is very slowly for the larger matrix u, v and B. Are there some good methods to compute c without using any for loop?.
Thanks a lot.
1 件のコメント
Matt J
2021 年 10 月 23 日
Are you sure the size of B shouldn't be 60x60x200? If not, your code example ignores the final 100 pages of B.
採用された回答
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Multidimensional Arrays についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!