dongtian99 发表于 2017-1-16 11:51:02

Fortran中满秩矩阵如何转化为压缩稀疏列(CSC)格式

请问,Fortran中满秩矩阵如何转化为压缩稀疏列(CSC)格式的稀疏矩阵呀,有子程序吗,或者推荐哪里有相关内容呀

pasuka 发表于 2017-1-16 13:31:19

请先把Tim Davis的这本入门书籍及其附带的C程序看完
Direct Methods for Sparse Linear Systems


fcode 发表于 2017-1-16 15:34:32

CSC格式本身并不复杂。做个循环,把非零的数据选出来,并且把坐标(或坐标偏移)算出来挨个放就可以了。

但是更多的你应该考虑,存为CSC之后,你要怎么计算?你是否有CSC格式的计算代码?(或函数库?如果有函数库,那么为何不用函数库提供的转换方法?)

dongtian99 发表于 2017-1-16 16:48:31

fcode 发表于 2017-1-16 15:34
CSC格式本身并不复杂。做个循环,把非零的数据选出来,并且把坐标(或坐标偏移)算出来挨个放就可以了。

...

您好,谢谢。我调用的是一个求解器,只需要向它提供CSC格式矩阵的三个一维数组就行(每列第一个非零元素的位置、每个非零元素的行号、数值)。求解器提供的例题矩阵比较小,它直接把这三个数组写出来了。但我组装后的矩阵矩阵比较大,现在不知道怎样由大矩阵获得那三个一维数组

dongtian99 发表于 2017-1-16 16:48:54

pasuka 发表于 2017-1-16 13:31
请先把Tim Davis的这本入门书籍及其附带的C程序看完
Direct Methods for Sparse Linear Systems



好的,谢谢。我再看看

fcode 发表于 2017-1-16 16:52:56

那就简单了。百度去看看 CSC/CSR 的存储方式就好了,200个字以内就可以解释清楚。
做个循环,把非零的数据选出来,并且把坐标(或坐标偏移)算出来挨个放就可以了

dongtian99 发表于 2017-1-16 16:57:55

fcode 发表于 2017-1-16 16:52
那就简单了。百度去看看 CSC/CSR 的存储方式就好了,200个字以内就可以解释清楚。
做个循环,把非零的数据 ...

好的,我试试看。谢谢啦
页: [1]
查看完整版本: Fortran中满秩矩阵如何转化为压缩稀疏列(CSC)格式