COO 与 CSR 稀疏矩阵存取格式;
2024-08-31 12:51:10
稀疏矩阵是指矩阵中元素大部分是0的矩阵,事实上,实际问题中大规模矩阵基本上是稀疏矩阵,很多稀疏度在90%甚至99%以上;因此我们需要有高效的稀疏矩阵存储格式。
本文参考了 https://www.cnblogs.com/xbinworld/p/4273506.html 此文章,对coo 和 csr 两种格式,进行摘录,进行备忘;
- COO Coordinate (以坐标的形式进行表示)
这是最简单的一种格式,每一个元素需要用一个三元组来表示,分别是(行号,列号,数值),对应上图右边的一列。这种方式简单,但是记录单信息多(行列),每个三元组自己可以定位,因此空间不是最优。
- Compressed Sparse Row (CSR) (以行压缩的形式进行表示)
CSR是比较标准的一种,也需要三类数据来表达:数值,列号,以及行偏移。CSR不是三元组,而是整体的编码方式。数值和列号与COO一致,表示一个元素以及其列号,行偏移表示某一行的第一个元素在values里面的起始偏移位置。如上图中,第一行元素1是0偏移,第二行元素2是2偏移,第三行元素5是4偏移,第4行元素6是7偏移。在行偏移的最后补上矩阵总的元素个数,本例中是9。
- Compressed Sparse Column (CSC) (以列压缩的形式进行表示)
CSC是和CSR相对应的一种方式,即按列压缩的意思。
以上图中矩阵为例:
Values: [1 5 7 2 6 8 3 9 4]
Row Indices:[0 2 0 1 3 1 2 2 3]
Column Offsets:[0 2 5 7 9]
资源来源自网络,保持更新;更多内容请关注 cnblogs.com/xuyaowen;
最新文章
- 2016福州大学软件工程Beta阶段团队作业成绩汇总
- A Taxonomy of Computer Organizations
- 分布式事务操作之Spring+JTA
- MDF文件数据恢复
- 如何在网页中显示pdf
- [转]在.Net中使用Oracle的表类型和对象类型
- CF(441D Valera and Swaps)置换群
- poj 3026 Borg Maze bfs建图+最小生成树
- IntelliJ 15 unmapped spring configuration files found
- JS-如何把字符串转换成数组
- uoj#38. 【清华集训2014】奇数国【欧拉函数】
- Javaweb学习(一):tomcat服务器配置与启动
- Java日志框架那些事儿
- MyBatis入门简述
- cmake add_custom_command 使用
- Ex 2_34 线性3SAT..._第四次作业
- [转]C#操作INI文件
- ReentrantLock源码了解
- linux常用命令:find 命令参数详解
- 前端验证用户登陆状态(vue.js)