Título: Suma de dos matrices - Me devuelve "[[D@7d4991ad"
Publicado por: danissj en 31 Marzo 2019, 23:54 pm
Hice un intento de programa para sumar dos matrices (soy novato en java) , el problema es que el resultado me devuelve un "[[D@7d4991ad" y no se como podria solucionarlo. cualquier ayuda es bienvenida. package bidimensional; import java.util.Scanner; public class Bidimensional { private double[][] matriz; private int renglones; private int columnas; public Bidimensional(int renglones, int columnas) { // constructor y pido el ingreso de valores a matrices Scanner entrada = new Scanner (System. in); this.matriz = new double [renglones][columnas]; for(int i=0 ; i<renglones; i++) { for(int j=0; j<columnas; j++) { System. out. print("Ingresar el numero de matriz ["+i +":"+j +"]: "); matriz[i][j]=entrada.nextDouble(); } } } public double[][] suma(Bidimensional m2) // operacion de suma { for(int i=0; i<2; i++) { for(int j=0; j<2; j++) { matriz[i][j]=matriz[i][j]+m2.matriz[i][j]; } } return matriz; } }
MAIN: package testBidimensional; import bidimensional.Bidimensional; public class TestBidimensional { public static void main (String[] args ) { // TODO Auto-generated method stub Bidimensional matrices1 = new Bidimensional(2,2); Bidimensional matrices2 = new Bidimensional(2,2); System. out. println("Suma: "+matrices1. suma(matrices2 )); } }
Título: Re: Suma de dos matrices - Me devuelve "[[D@7d4991ad"
Publicado por: rub'n en 1 Abril 2019, 00:30 am
Casi casi lo tiene dog :xD, recorrer con doble ciclo for como haces con el método suma, porque debes recorrer cada indice, me da aburrimiento máximo llenarla, pero aleatoria nom y así ahorras tiempo en desarrollo, no apto para produccion :xDPero me imagino que entiendes no? ejemplo las coordenada [0,0] de la matris1 se sumara con la [0,0] de la matris 2 y asipublic class Bidimensional { private double[][] matriz; private int renglones; private int columnas; public Bidimensional(int renglones, int columnas) { // constructor y pido el ingreso de valores a matrices Scanner entrada = new Scanner (System. in); this.matriz = new double [renglones][columnas]; for(int i=0 ; i<renglones; i++) { for(int j=0; j<columnas; j++) { matriz [i ][j ]= Double. valueOf(TWO_DIGITS. format(1 + SR. nextDouble())); System. out. print("Ingresar el numero de matriz ["+i +":"+j +"]: "); System. out. println(matriz [i ][j ]); } } } public double[][] suma(Bidimensional m2) // operacion de suma { for(int i=0; i<2; i++) { for(int j=0; j<2; j++) { matriz[i][j]= matriz[i][j] + m2.matriz[i][j]; } } return matriz; } public double format(final double num) { return Double. valueOf(TWO_DIGITS. format(num ). replace(",", ".")); } public static void main (String ... blalba) { final Bidimensional matris = new Bidimensional(2,2); final Bidimensional matris2 = new Bidimensional(2,2); final double[][] resultado = matris.suma(matris2); //Recorrer el Array de doble dimension, con java 8, java 7 usa doble for . flatMapToDouble(Arrays::stream ) .map(this::format) . forEach(System. out::println ); } }
Ingresar el numero de matriz [0:0]: 1.32 Ingresar el numero de matriz [0:1]: 1.8 Ingresar el numero de matriz [1:0]: 1.62 Ingresar el numero de matriz [1:1]: 1.71 Ingresar el numero de matriz [0:0]: 1.53 Ingresar el numero de matriz [0:1]: 1.6 Ingresar el numero de matriz [1:0]: 1.6 Ingresar el numero de matriz [1:1]: 1.57 2.85 3.4 3.22 3.28 Process finished with exit code 0
Tambien te sirve asi, y cualquier otra manera que funcione XD public double[][] suma(Bidimensional m2) // operacion de suma { for(int i=0; i<matriz.length; i++) { for(int j=0; j<m2.matriz[i].length; j++) { matriz[i][j]= matriz[i][j] + m2.matriz[i][j]; } } return matriz; }
Y asi
for(int i=0; i<matriz.length; i++) { for(int j=0; j<matriz[i].length; j++) { matriz[i][j]= matriz[i][j] + m2.matriz[i][j]; } }
Título: Re: Suma de dos matrices - Me devuelve "[[D@7d4991ad"
Publicado por: CalgaryCorpus en 1 Abril 2019, 05:10 am
Una alternativa a esto es que el metodo suma no devuelva nada, o bien devuelva una referencia hacia el objeto Bidimensional y que sea el metodo toString() el que imprima los valores al interior del objeto Bidimensional.
|