Sum of matrix times scalars
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Mohammed Kagalwala
am 21 Okt. 2019
Bearbeitet: Mohammed Kagalwala
am 21 Okt. 2019
Hi,
I have a series of 3x3 matrices T1, T2, T3 ... TN. In addition, I have a series of scalars a1, a2, ... aN. I wish to perform the following sum WITHOUT the use of a for-loop. T1*a1 + T2*a2 + .... TN*aN. I have solved this using a for loop currently, but wish to take advantage of Matlabs superior data structures i.e. 3D arrays, cells, etc.
Thank you for your help !
Akzeptierte Antwort
Matt J
am 21 Okt. 2019
Bearbeitet: Matt J
am 21 Okt. 2019
Hold your 3x3 matrices in a 3x3xN array caled T and your scalars in an Nx1 vector called a and do,
result=reshape(T,9,[])*a(:);
result=reshape(result,3,3);
2 Kommentare
Guillaume
am 21 Okt. 2019
Note that if a is a Nx1 vector, then a(:) and a are the same.
Another option is:
result = sum(T .* reshape(a, 1, 1, []), 3);
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Linear Algebra finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!