Título: Suma de columnas de matriz mxn Publicado por: ~H~ en 14 Octubre 2013, 00:37 am El método sum tiene un parámetro (mat) que es una array bidimensional de elementos de tipo float. El parámetro mat representa una matriz de n x m elementos. Complete el método para que devuelva un array monodimensional de m elementos de tipo de tipo float que represente la suma vectorial de las n filas de la matriz mat.
La suma de n vectores es un nuevo vector en el que cada elemento es igual a la suma de los elementos que ocupan la misma posición en los vectores que se suman. Ejemplo: 1 2 3 4 0 1 1 2 2 3 1 1 resultado 3 6 5 7 Bueno yo lo he echo así, pero en concreto lo que no entiendo es esto float[] myArray = new float [mat[0].length]; lo de mat[0].length significa que declaro ese array y tiene la longuitud de la primera dimensión en 0?? Esque eso no lo entiendo si alguien sabe explicarlo bien y de una manera sencilla que me lo diga porfavor. Código: public class Excercise { Título: Re: Suma de columnas de matriz mxn Publicado por: ThinkByYourself en 15 Octubre 2013, 00:32 am Efectivamente, estás declarando que la longitud de myArray es la misma que la longitud del primer (y último, y la de los del medio igual) array metido como argumento al método (o sea la longitud del primer array de arrays), o, en otras palabras, estás diciendo que la solución tendrá el mismo número de dígitos que el primer número de la suma (y el último, y todos los que haya en medio). Pues que si tú vas a querer sumar 1582 9856 555550, en realidad tendrás:
001582 009856 555550 Y tu resultado tendrá que tener tantos dígitos como dígitos cualquiera de los números de la suma, afirmación no necesariamente cierta. No es necesariamente cierto porque suele pasar que una suma tenga más dígitos que los... "sumandos?", bueno no sé, pero con un 5+5 tu programa tendría conflictos. Ah, y no entiendo porque usas float si en el caso expuesto sólo hay enteros. Ah, y también he supuesto que en cada índice de array va a haber solamente 1 cifra, y quizá no debiera.... pero bueno, espero que lo hayas entendido un poco más. Espero que te haya servido la respuesta. Eeeeeenga ahí esos estudios PD: también puede ser que no haya entendido nada... pro weno. Título: Re: Suma de columnas de matriz mxn Publicado por: Mitsu en 16 Octubre 2013, 23:55 pm Complementando la respuesta de NoBullShit, primero, te dejo un code de ejemplo:
Código
Veamos el método getSumaFilasMatriz(doube[][] matriz): Código
Este loop, lo que hace es inicializar todos los elementos de nuestro array que contendrá la sumatoria de las filas de la matriz, en 0. Lo inicializamos en 0, porque en otro loop en donde almacenaremos las sumatorias de las filas de la matriz, en este array; utilizaremos: Código: sumaFilasMatriz[fila] += matriz[fila][columna]; Si hicieramos esto sin inicializar el arreglo sumaFilasMatriz, simplemente nos tiraría un hermoso NullPointerException, que explicado, significa, que se está queriendo acceder a un valor que no existe, es decir, un valor null. Citar Por defecto todo objeto sin incializar, tiene el valor null. Ahora, solo falta almacenar las sumas de las filas de la matriz, en una determinada posición de nuestro array: Código
Nota: usamos el operador += para que en cada iteración del bucle interno, se sume la columna actual de la matriz, a la suma que ya se tiene en la posición[fila] del array. Título: Re: Suma de columnas de matriz mxn Publicado por: ~H~ en 19 Octubre 2013, 00:19 am Gracias ya entendí todo el código, sólo tenía la duda de que significaba mat[0].length, ahora que se que devuelve el número de columnas de la primera fila ya lo entiendo todo, gracias por las explicaciones.
Título: Re: Suma de columnas de matriz mxn Publicado por: zonahurbana en 19 Octubre 2013, 21:40 pm Gracias ya entendí todo el código, sólo tenía la duda de que significaba mat[0].length, ahora que se que devuelve el número de columnas de la primera fila ya lo entiendo todo, gracias por las explicaciones. Es decir, ¿sería lo mismo si se usará mat[1], mat[2] u otro número siempre que no se exceda mat.length-1?Ya que, mat.length es la cantidad de filas de la matriz, ¿verdad? Título: Re: Suma de columnas de matriz mxn Publicado por: ~H~ en 19 Octubre 2013, 22:34 pm Es decir, ¿sería lo mismo si se usará mat[1], mat[2] u otro número siempre que no se exceda mat.length-1? No entiendo muy bien tu pregunta, mat.length es la cantidad de filas de la "matriz", sí, pero eso es un método, se supone que esta diseñado para que funcione sean los valores que sean los de las filas y las columnas.Ya que, mat.length es la cantidad de filas de la matriz, ¿verdad? Es decir funciona para valores cualesquiera que le pases tú desde la clase principal main por teclado, claro que habría que crear la clase main Título: Re: Suma de columnas de matriz mxn Publicado por: zonahurbana en 19 Octubre 2013, 22:44 pm mat.length devolvería la cantidad de filas de una matriz bidimensional mat, y la cantidad de elementos si se tratase de un vector.
mat[0].length devuelve la cantidad de elementos de la fila 0 de la matriz mat, es decir, la cantidad de columnas de mat. Yo preguntaba si es lo mismo usar mat[0], mat[1], y así con cualquier mat donde i<mat.length Es que, hasta antes, yo sólo había visto vectores. Y pensaba que para matrices existía algo como mat.height para las columnas :silbar: Título: Re: Suma de columnas de matriz mxn Publicado por: Mitsu en 19 Octubre 2013, 23:05 pm No hay por qué confundirse.
Sea conjunto una matriz de 3 x 3: Código Supongamos que queremos saber cuantas filas tiene dicha matriz: Código
Ahora, queremos saber cuántas columnas tiene la fila 2: Código
Generalmente arrays sean unidimensionales o bidimensionales, no se usan a la hora de desarrollar. Se usan Colecciones. Dirán por qué, bueno, una de las grandes razones es que cuando usamos arreglos, debemos saber de antemano cuantos elementos tendrá dicho arreglo, pero supongamos que vamos a recuperar datos, pero no sabemos con exactitud cuántos valores va a devolver. Entonces, en estos casos se usa una colección. Esta puede ser una Lista, un ArrayList, LinkedList, Map, HashMap, etc. Una colección no tiene un tamaño límite, está prácticamente limitado por la memoria del ordenador, lo cual es una ventaja. Además en una ArrayList - por ejemplo -, podemos guardar distintos tipos de datos, podemos guardar TODO. Si ven el método add de ArrayList, verán que recibe un Object, y como saben, todo en Java hereda de Object. También podemos asegurarnos que una colección sea de un tipo especificado, utilizando Generics, pero ese es otro tema. Título: Re: Suma de columnas de matriz mxn Publicado por: ~H~ en 19 Octubre 2013, 23:47 pm Muchas gracias por la explicación!
|