稀疏矩阵的运算
- 格式:doc
- 大小:12.70 KB
- 文档页数:2
- 1 - 稀疏矩阵的运算
稀疏矩阵的运算
稀疏矩阵,顾名思义,就是矩阵中空值(0)的比例很大,而实际值(非0)的比例很小的矩阵。
它最大的特点就是,当矩阵的规模增大时,仍然可以保持较低的计算量。
在运算时,因为稀疏矩阵中的0值没有意义,所以对其做运算也没有意义。所以,在运算中需要把稀疏矩阵转换成一维数组,即只保留其有意义的值。
下面介绍几种常用的稀疏矩阵运算技术。
1.索引表(Indextable)
这是一种最简单的稀疏矩阵运算技术,在使用索引表时,需要用一个额外的一维数组来保存有意义的值的位置,而把矩阵本身变成一维数组,进行运算。例如矩阵A:
1 0 0 0 0
0 0 0 4 0
0 0 0 0 0
0 3 0 0 0
0 0 7 0 0
这样的矩阵,可以使用一个一维数组来保存其有意义的值及其位置,例如:
[1,(0,0); 4,(1,3); 3,(3,1); 7,(2,2)] - 2 - 这样,我们就可以用简单的一维数组代替复杂的二维矩阵,从而加快稀疏矩阵的运算。
2.矩阵向量乘法(Matrix-Vector Multiplication)
这是一种最常用的稀疏矩阵运算技术,把一个大的稀疏矩阵A和一个向量(一维数组)V作乘法,得到一个新的向量C,即:
C = A * V
对于上面的实例,可以用以下方式求出C:
C[0] = 1 * V[0] + 0 * V[1] + 0 * V[2] + 0 * V[3] + 0 * V[4]
C[1] = 0 * V[0] + 0 * V[1] + 0 * V[2] + 4 * V[3] + 0 * V[4]
C[2] = 0 * V[0] + 0 * V[1] + 0 * V[2] + 0 * V[3] + 7 * V[4]
C[3] = 0 * V[0] + 3 * V[1] + 0 * V[2] + 0 * V[3] + 0 * V[4]
3.矩阵乘法(Matrix Multiplication)
矩阵乘法也是一种常用的稀疏矩阵运算技术,把两个大的稀疏矩阵A和B相乘,得到一个新的稀疏矩阵C,即:
C = A * B
以上就是稀疏矩阵运算的一些常用技术,稀疏矩阵也可以用于解决很多复杂的运算问题,例如机器学习和深度学习等。