É importante armazenar os dados de forma que possam ser recuperados nos idiomas usados. A linguagem C armazena na ordem da linha principal (toda a primeira linha vem primeiro, depois toda a segunda linha, ...) com cada índice indo de 0 a sua dimensão-1. Portanto, a ordem da matriz x [2] [3] é x [0] [0], x [0] [1], x [0] [2], x [1] [0], x [1] [ 1], x [1] [2]. Portanto, na linguagem C, x [i] [j] é armazenado no mesmo lugar que uma entrada de array unidimensional x1dim [i * 3 + j]. Se os dados forem armazenados dessa forma, é fácil recuperá-los em linguagem C.
Fortran e MATLAB são diferentes. Eles são armazenados na ordem da coluna principal (toda a primeira coluna vem primeiro, depois toda a segunda linha, ...) e cada índice vai de 1 para sua dimensão. Portanto, a ordem do índice é o inverso de C e todos os índices são 1 maior. Se você armazenar os dados na ordem da linguagem C, FORTRAN pode encontrar X_C_language [i] [j] usando X_FORTRAN (j + 1, i + 1). Por exemplo, X_C_language [1] [2] é igual a X_FORTRAN (3,2). Em matrizes unidimensionais, esse valor de dados está em X1dim_C_language [2 * Cdim2 + 3], que é a mesma posição que X1dim_FORTRAN (2 * Fdim1 + 3 + 1). Lembre-se de que Cdim2 = Fdim1 porque a ordem dos índices é invertida.
MATLAB é igual a FORTRAN. Ada é igual a C, exceto que os índices normalmente começam em 1. Qualquer idioma terá os índices em uma dessas ordens C ou FORTRAN e os índices começarão em 0 ou 1 e podem ser ajustados de acordo para obter os dados armazenados.
Desculpe se esta explicação é confusa, mas acho que é precisa e importante para um programador saber.