Il est important de stocker les données de manière à pouvoir les récupérer dans les langues utilisées. Le langage C stocke dans l'ordre des lignes principales (toute la première ligne vient en premier, puis toute la deuxième ligne, ...) avec chaque index allant de 0 à sa dimension-1. Ainsi l'ordre du tableau x [2] [3] est x [0] [0], x [0] [1], x [0] [2], x [1] [0], x [1] [ 1], x [1] [2]. Ainsi, en langage C, x [i] [j] est stocké au même endroit qu'une entrée de tableau à 1 dimension x1dim [i * 3 + j]. Si les données sont stockées de cette façon, il est facile de les récupérer en langage C.
Fortran et MATLAB sont différents. Ils stockent dans l'ordre principal de la colonne (toute la première colonne vient en premier, puis toute la deuxième ligne, ...) et chaque index va de 1 à sa dimension. Ainsi, l'ordre des indices est l'inverse de C et tous les indices sont 1 plus grands. Si vous stockez les données dans l'ordre du langage C, FORTRAN peut trouver X_C_language [i] [j] en utilisant X_FORTRAN (j + 1, i + 1). Par exemple, X_C_language [1] [2] est égal à X_FORTRAN (3,2). Dans les tableaux à 1 dimension, cette valeur de données est à X1dim_C_language [2 * Cdim2 + 3], qui est la même position que X1dim_FORTRAN (2 * Fdim1 + 3 + 1). Rappelez-vous que Cdim2 = Fdim1 car l'ordre des indices est inversé.
MATLAB est le même que FORTRAN. Ada est identique à C sauf que les indices commencent normalement à 1. Toute langue aura les indices dans l'un de ces ordres C ou FORTRAN et les indices commenceront à 0 ou 1 et peuvent être ajustés en conséquence pour obtenir les données stockées.
Désolé si cette explication est déroutante, mais je pense qu'elle est précise et importante pour un programmeur.