`
zuroc
  • 浏览: 1309813 次
  • 性别: Icon_minigender_1
  • 来自: 江苏
社区版块
存档分类
最新评论

稀疏矩阵的存储格式 之 CSR/CSC

阅读更多
R是Row,C是Column

以csr为演示



I中每一个元素代表一行,其数值代表该行从J中哪个元素开始.J是列号了

空间 2*nnz+n(因为I==行数,J==2*nnz),nnz是非0元素个数

http://www.cs.utk.edu/~dongarra/etemplates/node373.html

然后可以看看下面的代码有什么bug,我还没有高兴看:)但是一定是有bug的...

template <typename T> static void
gf_spmat_get_data(gmm::csc_matrix_ref<const T*, const unsigned int *, const unsigned int *> M,
          getfemint::mexargs_out& out, int which) {
  size_type nz = M.jc[M.nc];
  if (which == 0) {
    iarray w = out.pop().create_iarray_h(unsigned(M.nc+1));
    for (unsigned i=0; i < M.nc+1; ++i)
      { w[i] = M.jc[i] + config::base_index(); }
    if (out.remaining()) {
      w = out.pop().create_iarray_h(unsigned(nz));
      for (unsigned i=0; i < nz; ++i)
    { w[i] = M.ir[i] + config::base_index(); }
    }
  } else {
    garray<T> w = out.pop().create_array_h(unsigned(nz), T());
    for (unsigned i=0; i < M.nc+1; ++i) { w[i] = M.pr[i]; }
  }
}
分享到:
评论

相关推荐

    稀疏矩阵存储格式总结+存储效率对比COO CSR DIA ELL HYB1

    以下是关于几种常见的稀疏矩阵存储格式的详细说明及它们的存储效率对比: 1. **Coordinate (COO)**: COO是最直观的存储方式,每个非零元素由一个三元组(行号,列号,数值)表示。虽然易于理解,但这种格式存储冗余...

    基于GPU的高效稀疏矩阵存储格式研究.pdf

    常见的稀疏矩阵存储格式有三元组存储格式、压缩稀疏行(CSR)格式、压缩稀疏列(CSC)格式等。这些格式都有其优缺,选择合适的存储格式对稀疏矩阵的处理效率有很大的影响。 知识点二:基于GPU的稀疏矩阵处理 GPU...

    稀疏矩阵运算器 C++

    通常,稀疏矩阵的存储格式有链表法、三元组法和压缩存储法(CSR, Compressed Sparse Row或CSC, Compressed Sparse Column)。 二、C++实现稀疏矩阵 1. 链表法:利用C++的结构体或类,定义节点包含元素值、行索引和...

    基于windows窗体程序的稀疏矩阵显示及相加

    稀疏矩阵是一种高效的数据结构,特别适用于处理大量元素为零的矩阵,以节省存储空间和提高运算效率。在本项目中,我们将使用C++语言进行编程,并利用Windows API来构建用户友好的图形界面。 首先,我们要理解稀疏...

    xishujuzhen.rar_M?n

    在“xishujuzhen.txt”文件中,很可能包含了原稀疏矩阵的三元组表示或某种压缩存储格式。我们需要读取这个文件,解析出矩阵的行、列和值,然后执行转置操作。解析过程可能涉及字符串分割、整数转换等步骤,具体实现...

    用MKL求解稀疏线性系统.doc

    稀疏矩阵的存储格式有多种,常见的有行主存储格式(CSR)和列主存储格式(CSC)。在 MKL 中,稀疏矩阵可以使用 CSR 格式或 CSC 格式存储。 PARDISO-direct solver 是一个高性能的稀疏线性系统解算器,它可以快速地...

    稀疏矩阵的一般处理方法

    - **压缩稀疏行(CSR)格式**:这是一种常用的稀疏矩阵存储格式,它将非零元素按行存储,并记录每行非零元素的位置。 - **压缩稀疏列(CSC)格式**:与CSR类似,但按列存储非零元素及其位置。 - **坐标格式(COO)**...

    sprs-稀疏矩阵库-Rust开发

    该API尚在开发中,对其粗糙边缘的反馈受到高度赞赏:)特征结构CSR / CSC矩阵三重矩阵稀疏向量运算稀疏矩阵/稀疏向量乘积稀疏矩阵/稀疏矩阵乘积稀疏矩阵/稀疏矩阵加,减稀疏向量/稀疏向量加法,减法,点积spar

    将一个满阵矩阵化为稀疏存储

    2. **行压缩存储(CSR)**:这是一种常用的存储格式,尤其适用于密集的行操作。它将矩阵按照行进行存储,每个非零元素的位置由两个数组记录:一个数组存储每行第一个非零元素的列索引,另一个数组存储非零元素的值。...

    c语言+稀疏矩阵相乘

    在计算机科学中,稀疏矩阵(Sparse Matrix)是一种用于存储大量零元素的矩阵表示方法,因为对于具有大量零元素的矩阵,直接使用二维数组存储所有元素会浪费大量的存储空间。本教程将详细介绍如何使用C语言实现稀疏...

    对于行列式稀疏矩阵处理

    因此,通常采用专门的稀疏矩阵存储结构,如三元组存储(Triplets)、压缩行存储(Compressed Row Storage, CRS)或压缩列存储(Compressed Column Storage, CCS,也称为_CSR_和_CSC_格式)。这些存储方式只保存非零...

    稀疏矩阵的C++实现--课程设计

    在本课程设计中,我们将深入探讨稀疏矩阵的C++实现,旨在理解和应用这种数据结构来优化存储和计算性能。 稀疏矩阵的核心思想是只存储非零元素,避免浪费内存空间在大量的零元素上。常见的存储方法有两种:三元组...

    基于GPU的稀疏矩阵向量乘优化.pdf

    常见的稀疏矩阵存储格式包括Compressed Sparse Row(CSR)、Compressed Sparse Column(CSC)和Coordinate Format(COO)等。不同的存储格式对应不同的计算策略和优化方法。 2.基于GPU的稀疏矩阵向量乘算法 基于...

    稀疏矩阵LU分解的FPGA实现.pdf

    对于稀疏矩阵,通常只存储非零元素,并且有多种压缩存储格式,其中最常见的是压缩稀疏行(CSR)格式和压缩稀疏列(CSC)格式。这些格式能够有效减少存储空间的需求。 FPGA(现场可编程门阵列)是一种可编程逻辑设备...

    稀疏矩阵 的转置 和相乘

    1. **压缩存储**:除了三元组,还可以使用链表、压缩行存储(CSR)或压缩列存储(CSC)等结构,减少存储开销和查找时间。 2. **并行计算**:利用多核处理器或分布式系统,将计算任务分解,加速矩阵乘法过程。 3. **...

    可以用来计算压缩感知中测量矩阵和稀疏矩阵的RIP,稀疏矩阵的压缩存储方式有,matlab

    常见的稀疏矩阵存储方法包括三元组存储(Tuple Storage)、压缩列存储(Compressed Column Storage,如CSR,Compressed Sparse Row)和压缩行存储(Compressed Row Storage,如CSC,Compressed Sparse Column)。...

    稀疏矩阵转置 源码

    另一种常见表示是压缩存储,如链表或压缩行存储(CSR)和压缩列存储(CSC)。 2. **转置操作**:矩阵转置是将矩阵的行变为列,列变为行。对于稀疏矩阵,转置需要交换三元组的行索引和列索引,同时保持非零元素的...

    创建一个稀疏矩阵(5KB)

    在稀疏矩阵的实现中,常见的数据结构有链表、三元组数组或压缩存储(如CSR、CSC格式)。这些数据结构设计的目标是减少存储空间,同时保持高效的访问速度。例如,三元组数组存储每个非零元素的行索引、列索引和值,而...

    xishujuzhen.rar_稀疏_稀疏矩阵

    例如,可以通过链接列表、压缩存储(如CSR或CSC格式)等方式来优化运算过程,减少不必要的内存访问和计算时间。 5. **文件“www.pudn.com.txt”**:这可能是程序的来源或者说明文档,通常包含关于程序的使用说明、...

Global site tag (gtag.js) - Google Analytics