Матричное умножение
- матричный продукт C
= A
*B
A
и B
. Если A
является m-на-p и B
является p-на-n матрицей, затем C
- матрица m-на-n, заданная как
Это определение говорит, что C(i,j)
является скалярным произведением i
первая строка A
с j
1-й столбец 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