È importante memorizzare i dati in modo che possano essere recuperati nelle lingue utilizzate. Il linguaggio C memorizza in ordine di riga maggiore (tutta la prima riga viene prima, poi tutta la seconda riga, ...) con ogni indice che va da 0 alla sua dimensione-1. Quindi l'ordine della matrice x [2] [3] è x [0] [0], x [0] [1], x [0] [2], x [1] [0], x [1] [ 1], x [1] [2]. Quindi, in linguaggio C, x [i] [j] è memorizzato nella stessa posizione di una voce di matrice unidimensionale x1dim [i * 3 + j]. Se i dati vengono archiviati in questo modo, è facile recuperarli in linguaggio C.
Fortran e MATLAB sono diversi. Memorizzano in ordine di colonna principale (tutta la prima colonna viene prima, poi tutta la seconda riga, ...) e ogni indice va da 1 alla sua dimensione. Quindi l'ordine dell'indice è il contrario di C e tutti gli indici sono maggiori di 1. Se memorizzi i dati nell'ordine del linguaggio C, FORTRAN può trovare X_C_language [i] [j] usando X_FORTRAN (j + 1, i + 1). Ad esempio, X_C_language [1] [2] è uguale a X_FORTRAN (3,2). Negli array unidimensionali, il valore dei dati è X1dim_C_language [2 * Cdim2 + 3], che è la stessa posizione di X1dim_FORTRAN (2 * Fdim1 + 3 + 1). Ricorda che Cdim2 = Fdim1 perché l'ordine degli indici è invertito.
MATLAB è lo stesso di FORTRAN. Ada è uguale a C tranne per gli indici che normalmente iniziano da 1. Qualsiasi lingua avrà gli indici in uno di quegli ordini C o FORTRAN e gli indici inizieranno da 0 o 1 e possono essere regolati di conseguenza per ottenere i dati memorizzati.
Scusa se questa spiegazione è confusa, ma penso che sia accurata e importante che un programmatore lo sappia.