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