3D中的元素映射低三角形"到线性结构

时间:2015-03-12 22:58:35

标签: arrays algorithm matrix indexing

这是现有question的3D版本。

形状M[x,y,z]的3D数组(n,n,n)应该映射到仅包含x< = y< = z的元素的平面向量,以节省空间。所以我需要的是一个类似于2D情况的表达式(index := x + (y+1)*y/2)。我试图推导出一些公式,但却无法做到正确。请注意,向量内的元素顺序并不重要。

2 个答案:

答案 0 :(得分:2)

这是user3386109的答案的扩展,用于将具有形状d的任意维度(n,...,n)的数组映射到大小为size(d,n)的向量中,仅包含索引满足的元素X_1 <= X_2 <= ... <= X_d

index

size

答案 1 :(得分:1)

等式的3D版本是

index := (z * (z+1) * (z+2)) / 6 + (y * (y+1))/2 + x