How to efficiently calculate a weighted sum of 3 dimensional matrix through a vector in matlab
4 views (last 30 days)
Show older comments
A is a 3 dimensional matrix (M*N*K), b is a vector with length K. I need to calculate
, which is a 2 dimensional matrix (M*N). But i don't want to write it by a explicit summation because it is too slow. Is there any way to calculate it efficiently through matlab? Please attach the code if convenience.
3 Comments
Matt J
on 20 Nov 2023
@Hancheng Zhu If that means you've settled on one of the answers below, please Accept-click one of them.
Accepted Answer
Bruno Luong
on 17 Nov 2023
Edited: Bruno Luong
on 17 Nov 2023
This uses matrix multiplication so it should be well optimized and fast.
[m,n] = size(A, [1 2]);
C = reshape(A,m*n, []) * B(:);
C = reshape(C, m, n);
0 Comments
More Answers (1)
See Also
Categories
Find more on Logical in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!