Quiero obtener el tamaño de un array bidimesional, no se como hacerlo. Ademas no entiendo muy bien como lo explican en otros foros. Agradezco su ayuda y explicacion. Gracias.
int x [][4] = {{0,0,1,1}, {0,1,0,1}, {1,1,1,1}}; //Entradas: Entrada 1, Entrada 2, biais
int A [][4] = {{0,1,0,0}, {0,0,1,0}, {0,1,1,0}}; //Salidas: A1, A2, Y. Para el entrenamiento de Y entra A1 y A2
const byte dimx = sizeof ( x) / sizeof ( int);
const byte dimA = sizeof ( A) / sizeof ( int);
O en forma mas general
sizeof (array) / sizeof (array[0])
lo que traducido sería
Serial.println(sizeof(x)/sizeof(x[0]));
Está linea de código que escribió no la entiendo, ¿cómo funciona surbyte?
sizeof (array[0])
Es genérica.
Array es cada uno de tus dos matrices
Luego te puse el ejemplo!!
La funcion sizeof() evalúa el tamaño de memoria reservado para una variable o matriz en bytes.
int A[][4] = {{0,1,0,0}, {0,0,1,0}, {0,1,1,0}};
byte dimA = sizeof(A); //24 bytes
byte dimA = sizeof(A) / sizeof(int); //12 elementos
byte dimA = sizeof(A) / (4 * sizeof(int)); //3 filas + 4 columnas
Como tu preguntaste por el numero de elementos de la matriz es necesario dividir entre el tipo de datos usado te da el numero de elementos y si añades el numero de columnas te dara las filas.
Ahora tiene sentido usar int (2 bytes) para guardar 1 y 0 ? considera este ejemplo:
bool A[][4] = {{0,1,0,0}, {0,0,1,0}, {0,1,1,0}};
byte dimA = sizeof(A); //12 bytes
byte dimA = sizeof(A) / sizeof(bool); //12 elementos
byte dimA = sizeof(A) / (4 * sizeof(bool)); //3 filas + 4 columnas