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

조회 수: 4 (최근 30일)
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
Hancheng Zhu
Hancheng Zhu 2023년 11월 20일
Your code is very good and concise, bro. But it spends more time than the latter answer below. Thanks for your kindly help.
Matt J
Matt J 2023년 11월 20일
@Hancheng Zhu If that means you've settled on one of the answers below, please Accept-click one of them.

댓글을 달려면 로그인하십시오.

채택된 답변

Bruno Luong
Bruno Luong 2023년 11월 17일
편집: Bruno Luong 2023년 11월 17일
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);

추가 답변 (1개)

Matt J
Matt J 2023년 11월 17일
C=tensorprod(A,b,3,1)

카테고리

Help CenterFile Exchange에서 Logical에 대해 자세히 알아보기

제품


릴리스

R2023a

Community Treasure Hunt

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

Start Hunting!

Translated by