c - 将压缩行存储写入文本文件的标准格式?

标签 c sparse-matrix

我有一个以压缩行存储 (CRS) 格式存储的大型稀疏矩阵。这基本上是三个数组:一个包含值的数组、一个列索引数组和一个包含行指针的最终数组。例如。 http://web.eecs.utk.edu/~dongarra/etemplates/node373.html

我想将此信息写入一个文本 (.txt) 文件,该文件旨在使用 C 读取并放入三个数组中。我目前计划通过将 Value 数组中的所有条目写在用逗号分隔的一长行中来实现这一点。例如。 5.6,10,456,78.2,...等。然后对其他两个数组执行相同的操作。

我的 C 代码将结束读取第一行,将所有值放入标有“Value”的数组中。等等。

问题

这是“正确的”吗?或者是否有将 CRS 数据放入文本文件的标准方法?

最佳答案

据我所知,没有标准格式。您决定一种让您的生活更轻松的格式。

首先,如果您想查看其中一个文本文件,您会立即被排长队打扰。一些文本编辑器可能只是讨厌你。拆分线路没有错。

其次,考虑在文件开头写出每个数组中元素的数量(好吧,我想这三个数组只有两个不同的数组长度)。这将使您可以预先分配数组。如果手头有所有数组长度,则可以选择进行单个内存分配。

最后,考虑写出一些合理的标签名称。某种可以识别您的文件的标题是正确的格式,然后是表示每个数组开头的内容。检测文件问题对您的代码来说是一种理智的事情。它可能只是一个字符,但它是某种东西。

现在...称我为一个邋遢的老程序员,但我可能只会用二进制写很多东西。特别是如果它是 float 据,我不想处理将数字写成文本时的精度损失(或者当你以全精度写入它们时它们可能消耗的空间)。二进制文件易于编写和快速运行。如果您要跨具有不同字节顺序的平台使用它们,则必须小心。

这是我的 2 美分值(value)..希望它对你有用。

关于c - 将压缩行存储写入文本文件的标准格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12768347/

相关文章:

c - 需要帮助追踪非法写入。 valgrind 没有注意到它

c - Makefile 总是重新编译某些部分

printing - 通过 libcups 以编程方式打印双面打印的正确方法是什么?

C 数组算法中的最大数

python - 稀疏数组求和

python - 将元素设置为零的有效方法,其中掩码在 scipy 稀疏矩阵上为 True

tensorflow - 在 tfrecord 文件中写入和读取 SparseTensor

c# - 极稀疏数组的实现

c - 未在 C 中的 for 循环条件中声明的变量仍然有效

python - 稀疏矩阵点积每个结果行仅保留 N-max 值