Es importante almacenar los datos de manera que se puedan recuperar en los idiomas utilizados. C-language almacena en orden mayor de fila (todas las primeras filas son las primeras, luego todas las segundas, ...) con cada índice que va de 0 a 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 1-dimensional x1dim [i * 3 + j]. Si los datos se almacenan de esa manera, es fácil de recuperar en lenguaje C.
Fortran y MATLAB son diferentes. Almacenan en orden de columna principal (todas las primeras columnas son las primeras, luego todas las segundas, ...) y cada índice va de 1 a su dimensión. Entonces, el orden de índice es el inverso de C y todos los índices son 1 mayor. Si almacena los datos en el orden de 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 de 1 dimensión, 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 lo mismo 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.
Lo siento si esta explicación es confusa, pero creo que es precisa e importante para un programador saber.
Creo que esta respuesta es más clara, especialmente para los principiantes es mejor no escribir las funciones en una sola línea ... !! Es una mala práctica de todos modos ... :) – Lipis
Esta respuesta también es útil para cuando tienes un compilador (por ejemplo, sistemas integrados) que no tiene multidimensio adecuado nal array support –
Es asombroso cuántas personas pueden responder la misma pregunta correctamente, pero solo UNA de ellas lo dice de una manera que es fácil de entender. Esto es tan simple de una respuesta como se pone. Sin embargo, John es el único que realmente brinda una buena respuesta. Todo lo demás es basura que solo pueden entender fácilmente aquellos que ya conocen la respuesta. Gracias John, por hablar en inglés en lugar de alienígena. Solo sirve para mostrar lo mal que algunas personas están en la enseñanza, y cómo los buenos maestros como John Knoeller saben cómo simplificar y comunicarse de manera mucho más efectiva que los demás. – user2948630