稀疏矩阵及其用法
2014-03-08 18:21
141 查看
定义:矩阵中非零元素的个数远远小于矩阵元素的总数,并且非零元素的分布没有规律,则称该矩阵为稀疏矩阵(sparse
matrix);与之相区别的是,如果 非零元素的分布存在规律(如上三角矩阵、下三角矩阵、对称矩阵),则称该矩阵为特殊矩阵
意义:对于一个用二维数组存储的稀疏矩阵Amn,如果假设存储每个数组元素需要L个字节,那么存储整个矩阵需要m*n*L个字节.但是,这些存储空间的大部分 存放的是0元素,从而造成大量的空间浪费.为了节省存储空间,可以只存储其中的非0元素.
方法:对于矩阵Amn的每个元素aij,知道其行号i和列号j就可以确定其位置.因此对于稀疏矩阵可以用一个结点来存储一个非0元素.该结点可以定义如下:
[i,j,aij]
该结点由3个域组成,i:行号,j:列号;aij元素值.这样的结点被称为三元组结点.矩阵的每一个元素Qij,由一个三元组结点(i,j,aij)唯一确定.
实例:稀疏矩阵A:
50 0 0 0
10 0 20 0
0 0 0 0
-30 0 -60 5
其对应的三元组表为:
1 1 50
2 1 10
2 3 20
4 1 -30
4 3 -60
4 4 5
matrix);与之相区别的是,如果 非零元素的分布存在规律(如上三角矩阵、下三角矩阵、对称矩阵),则称该矩阵为特殊矩阵
意义:对于一个用二维数组存储的稀疏矩阵Amn,如果假设存储每个数组元素需要L个字节,那么存储整个矩阵需要m*n*L个字节.但是,这些存储空间的大部分 存放的是0元素,从而造成大量的空间浪费.为了节省存储空间,可以只存储其中的非0元素.
方法:对于矩阵Amn的每个元素aij,知道其行号i和列号j就可以确定其位置.因此对于稀疏矩阵可以用一个结点来存储一个非0元素.该结点可以定义如下:
[i,j,aij]
该结点由3个域组成,i:行号,j:列号;aij元素值.这样的结点被称为三元组结点.矩阵的每一个元素Qij,由一个三元组结点(i,j,aij)唯一确定.
实例:稀疏矩阵A:
50 0 0 0
10 0 20 0
0 0 0 0
-30 0 -60 5
其对应的三元组表为:
1 1 50
2 1 10
2 3 20
4 1 -30
4 3 -60
4 4 5
相关文章推荐
- 稀疏矩阵的转置操作及其乘法操作
- 矩阵-----对称矩阵及其压缩存储&&稀疏矩阵
- 以三元组形式输出用十字链表表示的稀疏矩阵中非零元素及其下标的算法
- 稀疏矩阵及其应用案例
- 矩阵-----对称矩阵及其压缩存储&&稀疏矩阵
- 稀疏矩阵及其应用
- 稀疏矩阵求最小或最大的K个特征值及其特征向量
- 【LB】稀疏矩阵的快速转置原理及其算法
- 稀疏矩阵的存储方式及其快速转置的实现
- 稀疏矩阵的压缩存储及其转置算法
- 稀疏矩阵及其转置
- 稀疏矩阵及其逆置矩阵
- 稀疏矩阵及其实现
- 源代码——三元组实现稀疏矩阵及其转置
- Java数据结构之稀疏矩阵定义与用法示例
- SciPy教程 - sparse module稀疏矩阵
- C/C++中const关键字的用法及其与宏常量的比较
- 线性代数-【2-(3-4)】矩阵及其运算 (未完)
- 稀疏矩阵的转置与快速转置
- C#中using关键字的作用及其用法