1.矩阵
m*n 记为m行*n列的矩阵(row*column),只有在第一个矩阵的列数(column)和第二个矩阵的行数(row)相同时才有意义。
2. 矩阵乘法运算
定义:设
A为
的矩阵,
B为
的矩阵,那么称
的矩阵
C为矩阵
A与
B的乘积,记作
,其中矩阵C中的第
行第
列元素可以表示为:
如下所示:
示意图:
(1)当矩阵A的列数等于矩阵B的行数时,A与B可以相乘。
(2)矩阵C的行数等于矩阵A的行数,C的列数等于B的列数。
(3)乘积C的第m行第n列的元素等于矩阵A的第m行的元素与矩阵B的第n列对应元素乘积之和。
3.基本性质
乘法结合律: (
AB
)
C
=
A
(
BC
).
乘法左分配律:(
A
+
B
)
C
=
AC
+
BC
乘法右分配律:
C
(
A
+
B
)=
CA
+
CB
对数乘的结合性
k
(
AB
)=(
kA
)
B
=
A
(
kB
).
转置 (
AB
)
T
=
B
T
A
T
.
矩阵乘法一般不满足交换律。即:
4.在程序中矩阵的数据存储方式(程序存储方式)
m行n列矩阵数据结构:array[m][n] = {a
00
, a
01
, a
02
, a
03
, ..., a
0n
,
a
10
, a
11
, a
12
, a
13
, ..., a
1n
,
a
20
, a
21
, a
22
, a
23
, ..., a
2n
,
...........
a
m0
, a
m1
, a
m2
, a
m3
, ..., a
mn
};
array[0][0~n] -- 第0行数据,首地址array[0][0]在程序中最小;
array[1][0~n] -- 第1行数据,首地址array[1][0]在该行中最小,地址array[1][0] = 地址array[0][0] + n*单位(声明的数据类型);
当作一维矩阵看时,array[j][i] = array[j*n + i];