何时能相乘,得到什么形状
矩阵乘法不是逐元素的——它把左矩阵的每一行与右矩阵的每一列配对。约定是:要计算 A · B,A 的列数必须等于 B 的行数。这两个是“内侧”数字;“外侧”数字给出结果的尺寸。
A is (2 x 3), B is (3 x 2)
inner: 3 = 3 -> OK to multiply
outer: 2 2 -> product is (2 x 2)
( m x n ) * ( n x p ) = ( m x p )
The inner n's must match and then vanish.行乘列的配方
乘积中第 i 行第 j 列的元素,是 A 的第 i 行与 B 的第 j 列的点积:把对应的数字相乘再求和。把每一组(行、列)配对都走一遍,就能填满整个乘积。
- 选 A 的一行和 B 的一列。
- 把它们的第一个元素相乘、第二个元素相乘,依此类推。
- 把这些乘积加成一个数——这就是答案的一个元素。
- 对每一组行—列配对重复,填满整个乘积。
[ 1 2 ] [ 5 6 ]
[ 3 4 ] * [ 7 8 ]
row1 . col1 = 1*5 + 2*7 = 5 + 14 = 19
row1 . col2 = 1*6 + 2*8 = 6 + 16 = 22
row2 . col1 = 3*5 + 4*7 = 15 + 28 = 43
row2 . col2 = 3*6 + 4*8 = 18 + 32 = 50
Result = [ 19 22 ]
[ 43 50 ]次序重要;单位矩阵不改变任何东西
与数字不同,矩阵乘法不满足交换律:一般来说 A · B ≠ B · A。有时 B · A 甚至不是一个合法的乘积,因为形状对不上。所以交换律在这里失效——次序是含义的一部分。
单位矩阵 I 是乘法的锚点:对任何尺寸吻合的方阵 A,都有 A · I = I · A = A。它在矩阵乘法中扮演的角色,正是数字 1 在普通乘法中扮演的角色,这也是为什么下一篇可以谈逆矩阵——把 A 乘回 I 的那个矩阵。