2014-12-02 62 views
-2

我試圖寫3D矩陣的線性索引。是否有一個公式來確定什麼是(i,j,k)個元素的與(nx,ny,nz)尺寸的矩陣的線性索引? 有什麼區別我是否使用FORTRANC還是別的什麼? 我搜索了類似的問題,但沒有成立。 感謝您的任何指導。1維陣列用於索引一個3D矩陣

+0

?您是否熟悉行 - 主要訂單和C-主要訂單? – 2014-12-02 21:17:55

+0

是的,我認爲Fortran是行專業,現在我使用Fortran。 – Abolfazl 2014-12-02 21:23:34

+0

如果您正在使用1d數組並進行自己的索引算術,則可以選擇您喜歡的任何索引方案。 – agentp 2014-12-02 21:37:49

回答

2

其實,Fortran語言是列優先的順序。這意味着,當線性索引多維數組的第一個索引生長較快,即

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

其中I假定從1索引函數ind給出了一個指數在相同的期待作爲一維當元件(i,j,k)將具有二維陣列(例如,按順序關聯)。

大多數其他語言(包括C衍生物)使用行優先順序,以便最後一個索引增長最快。他們還索引從0

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

也有其他方面的差異,多維數組實際上你是如何定義的線性指標數組的數組(類似指針的指針)在C