Es importante almacenar los datos de manera que se puedan recuperar en los idiomas utilizados. El lenguaje C se almacena en orden de fila principal (toda la primera fila viene primero, luego toda la segunda fila, ...) con cada índice desde 0 hasta su dimensión-1. Entonces, el orden de la matriz x [2] [3] es x [0] [0], x [0] [1], x [0] [2], x [1] [0], x [1] [ 1], x [1] [2]. Entonces, en lenguaje C, x [i] [j] se almacena en el mismo lugar que una entrada de matriz unidimensional x1dim [i * 3 + j]. Si los datos se almacenan de esa manera, es fácil recuperarlos en lenguaje C.
Fortran y MATLAB son diferentes. Se almacenan en orden de columna principal (toda la primera columna viene primero, luego toda la segunda fila, ...) y cada índice va desde 1 hasta su dimensión. Entonces, el orden del índice es el inverso de C y todos los índices son 1 mayor. Si almacena los datos en el orden del lenguaje C, FORTRAN puede encontrar X_C_language [i] [j] usando X_FORTRAN (j + 1, i + 1). Por ejemplo, X_C_language [1] [2] es igual a X_FORTRAN (3,2). En matrices unidimensionales, ese valor de datos está en X1dim_C_language [2 * Cdim2 + 3], que es la misma posición que X1dim_FORTRAN (2 * Fdim1 + 3 + 1). Recuerde que Cdim2 = Fdim1 porque el orden de los índices se invierte.
MATLAB es lo mismo que FORTRAN. Ada es igual que C excepto que los índices normalmente comienzan en 1. Cualquier idioma tendrá los índices en una de esas órdenes C o FORTRAN y los índices comenzarán en 0 o 1 y se pueden ajustar en consecuencia para obtener los datos almacenados.
Disculpe si esta explicación es confusa, pero creo que es precisa e importante que un programador la sepa.