Умножение матриц
матричное произведение C
= A
*B
A
и B
. Если A
m-by-p и B
p-by-n матрица, затем C
матрица m на n, заданная
В этом определении говорится тот C(i,j)
скалярное произведение i
строка th A
с j
столбец th 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 заканчиваются, но с меньшим количеством операций и меньшим количеством промежуточного использования памяти.