# How to efficiently calculate a weighted sum of 3 dimensional matrix through a vector in matlab

1 view (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

### 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

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!