用于索引3D矩阵的1维阵列

时间:2014-12-02 20:49:44

标签: c indexing fortran

我正在尝试为3D矩阵编写线性索引。是否有公式来确定具有(i,j,k)维度的矩阵中(nx,ny,nz)元素的线性索引是什么? 我是否使用C FORTRAN或其他内容有什么区别吗? 我搜索了类似的问题,但没有成立。 感谢任何指南。

1 个答案:

答案 0 :(得分:2)

实际上,Fortran是列主要订单。这意味着当对多维数组进行线性索引时,第一个索引增长得更快,即

  ind(i,j,k) = i + (j-1)*nx + (k-1)*ny*nx

其中我假设从1开始索引。函数ind给出了元素(i,j,k)在查看与一维数组相同时所具有的索引(例如,在序列关联中)。

大多数其他语言,包括C派生词,都使用行主要顺序,以便最后一个索引增长最快。它们也从0开始。

  ind(i,j,k) - k + j*nz + i*ny*nz

还有其他差异,多维数组实际上是C中的数组数组(类似于指针指针)。