Матричное умножение
- матричный продукт C = A*BA и B. Если A является m-на-p и B является p-на-n матрицей, затем C - матрица m-на-n, заданная как
Это определение говорит, что C(i,j) является скалярным произведением iпервая строка A с j1-й столбец B. Вы можете написать это определение с помощью MATLAB® оператор двоеточия как
C(i,j) = A(i,:)*B(:,j)
A и B, количество столбцов A должно равняться количеству строк B. Умножение матриц не является универсально коммутирующим для нескалярных входов. То есть A*B обычно не равно B*A. Если хотя бы один вход скаляром, то A*B эквивалентно A.*B и является коммутативным.С цепочными матричными умножениями, такими как A*B*C, вы можете улучшить время выполнения, используя круглые скобки, чтобы диктовать порядок операций. Рассмотрим случай умножения трех матриц с A*B*C, где A 500 на 2, B 2 на 500, и C 500 на 2.
Без круглых скобок порядок операций левый направо так A*B вычисляется сначала, что образует матрицу 500 на 500. Затем эта матрица умножается на C для достижения результата 500 на 2.
Если вы вместо этого задаете A*(B*C), затем B*C сначала умножается, получая матрицу 2 на 2. Затем малая матрица умножается A для достижения того же результата 500 на 2, но с меньшим количеством операций и меньшим промежуточным использованием памяти.
colon | cross | dot | pagemtimes | times