multiplication of a 3-D matrix by a 1-D array

4 vues (au cours des 30 derniers jours)
yi yang
yi yang le 8 Oct 2022
Modifié(e) : Stephen23 le 11 Oct 2022
I have a 3-D matrix A = rand(sz1,sz2,sz3) and a 1-D array B = rand(1,sz3).
Is there a biult-in function to do the muliplication like:
C with dimensions of (sz1,sz2,sz3)
for ii = 1:sz3
C(:,:,ii)=A(:,:,ii)*B(ii);
end

Réponse acceptée

Stephen23
Stephen23 le 8 Oct 2022
You don't need a special kind of multiplication, you just need to match the vector orientation to the array:
C = A .* reshape(B,1,1,[])
  2 commentaires
yi yang
yi yang le 8 Oct 2022
Thanks for your reply. It works.
I checked the matlab documentation for .* and did not find an answer for the question below.
In your answer, the 2 matrices have different dimensions and the element-wise multiplication works, why?
Stephen23
Stephen23 le 11 Oct 2022
Modifié(e) : Stephen23 le 11 Oct 2022
"I checked the matlab documentation for .* and did not find an answer for the question below."
The TIMES documentation states:
"In your answer, the 2 matrices have different dimensions and the element-wise multiplication works, why?"
Clicking the link given in the TIMES documentation takes you to this page:

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Creating and Concatenating Matrices dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by