这是现有question的3D版本。
形状M[x,y,z]
的3D数组(n,n,n)
应该映射到仅包含x< = y< = z的元素的平面向量,以节省空间。所以我需要的是一个类似于2D情况的表达式(index := x + (y+1)*y/2
)。我试图推导出一些公式,但却无法做到正确。请注意,向量内的元素顺序并不重要。
答案 0 :(得分:2)
这是user3386109的答案的扩展,用于将具有形状d
的任意维度(n,...,n)
的数组映射到大小为size(d,n)
的向量中,仅包含索引满足的元素X_1 <= X_2 <= ... <= X_d
。
答案 1 :(得分:1)
等式的3D版本是
index := (z * (z+1) * (z+2)) / 6 + (y * (y+1))/2 + x