2014-12-02 2 views
-2

3D 매트릭스의 선형 인덱스를 작성하려고합니다. (nx,ny,nz) 크기의 행렬에서 (i,j,k) 번째 요소의 선형 색인이 무엇인지 결정하는 공식이 있습니까? C (FORTRAN) 또는 다른 것을 사용하고 있는지 여부에 차이가 있습니까? 비슷한 질문을했지만 아무것도 발견되지 않았습니다. 모든 안내서를 제공해 주셔서 감사합니다.3D 매트릭스를 인덱싱하기위한 1 차원 배열

+0

에서 (포인터에 대한 포인터와 유사) 배열의 배열인가? 당신은 용어 행 메이저 주문과 C 메이저 주문에 익숙합니까? –

+0

예, 포트란이 주요 행이라고 생각합니다. 이제 포트란을 사용합니다. – Abolfazl

+0

1d 배열을 사용하고 자신 만의 인덱스 산술 연산을 수행하는 경우 원하는 인덱스 구성을 선택할 수 있습니다. – agentp

답변

2

실제로 Fortran은 열 주요 명령입니다. 즉 선형 다차원 배열을 인덱싱 할 때 첫 번째 인덱스는 빠른 성장을 의미 즉, 내가 1에서 색인 기능 ind이 액형 같은 볼 때 요소 (i,j,k)는 것 인덱스를 제공합니다 가정

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

(예 : 시퀀스 연관).

C 유도체를 비롯한 대부분의 다른 언어는 행 우선 순서를 사용하므로 마지막 색인이 가장 빠르게 증가합니다. 그들은 0

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

다른 차이점도 있습니다에서도 인덱스, 다차원 배열은 실제로 당신이 선형 인덱스를 정의하려면 어떻게 C.

관련 문제