Yale format上的Wikipedia页面上用于存储稀疏矩阵的页面涵盖了2D矩阵,但是高维呢?是否有诸如Yale格式(或的扩展名)之类的算法可以存储n> 2维稀疏矩阵?—那样,我的意思是一种以某种压缩方式存储的算法,因为您当然可以存储原始矩阵。
对该主题的大多数搜索似乎都是针对特定的语言实现的,这些对我来说毫无用处,因为我正在寻找一种适应性强的算法。
答案 0 :(得分:0)
我们可以想象两个极端:
Yale格式是这两者之间的折衷,我们假设非零元素的数量大于行数 1 ,但比元素总数小;因此我们为每行存储一个指针 2 ,然后将每个元素的值和位置存储在其行中,总大小为 m + 2 x 。
在两个以上的维度上,您可以继续做出相同的折衷。您只需要选择正确的维度或维度的正确组合,以使非零元素的数量小于行/超行/等的数量。
例如,对于由( i ,索引的 m × n × p 数组j , k ),您有两个妥协选项: 3
更广泛地说,一个 d 维数组将具有 d -1折衷选项。 。 。或总共2 d 选项,如果您分别计算每个可能的尺寸选择。
注释: