【问题标题】:multi-dimensional Sparse Matrix Compression多维稀疏矩阵压缩
【发布时间】:2013-03-20 13:44:32
【问题描述】:

任何人都可以推荐一个好的 C++ 库来存储多维稀疏矩阵,该矩阵专注于矩阵中数据的压缩。矩阵的维数会很大(比如 80 维)。非常欢迎任何帮助:)。

编辑:
矩阵高度稀疏,大约为 0.0000001(或)1x10-6

【问题讨论】:

  • @Peter 那个问题被明确标记为linear-algebra,那里的答案甚至没有提到多维稀疏结构。
  • 是的。如果我打算进行线性代数运算,它们非常好。但我担心的是对庞大矩阵数据的有效存储和检索。这就是索引的问题。
  • 80 维...令人兴奋!假设每个维度都由 2 个值(称为 0 和 1)之一进行索引;你有 2^80 个细胞。你肯定需要矩阵是稀疏的。您将处理 80 维的哪种数据?

标签: c++ c indexing


【解决方案1】:

在 c# 中,我使用键值对或“字典”来存储稀疏填充的数组。我认为对于 80 个维度,您必须构建一个基于字符串的键。使用一个函数来创建它应该保持一致的键。只需连接一个逗号分隔的维度列表。不幸的是,我不知道一个好的密钥对,用于 c++ 的字典库。如果您以前使用过它,可能是 STL,但我不推荐它。

【讨论】:

  • 将逗号分隔的维度作为键是非常好的方法。我对这种方法有进一步的改进。为什么我不计算整个密钥字符串的哈希值并将其用作密钥?这种方法有什么陷阱吗?
  • 我认为冲突将是存储哈希值而不是整个键字符串的问题。
猜你喜欢
  • 2015-12-05
  • 2011-10-02
  • 2015-12-30
  • 1970-01-01
  • 1970-01-01
  • 2023-03-25
  • 2019-03-12
  • 2016-10-04
  • 2020-07-01
相关资源
最近更新 更多