

{"id":651,"date":"2019-11-16T14:55:31","date_gmt":"2019-11-16T13:55:31","guid":{"rendered":"https:\/\/dornisoft.es\/dorniblog\/?p=651"},"modified":"2021-08-12T22:36:34","modified_gmt":"2021-08-12T20:36:34","slug":"operaciones-con-matrices-en-java-suma-resta-multiplicacion-matriz-identidad","status":"publish","type":"post","link":"https:\/\/dornisoft.es\/dorniblog\/operaciones-con-matrices-en-java-suma-resta-multiplicacion-matriz-identidad\/","title":{"rendered":"Operaciones con matrices en Java (suma, resta, multiplicaci\u00f3n, matriz identidad)"},"content":{"rendered":"\n<p>Hola, hoy os traemos un programa en java que realiza operaciones (suma, resta, multiplicaci\u00f3n y matriz identidad) con matrices, en este ejemplo utilizamos matrices cuadradas aleatorias para que sea mas rapido pero podr\u00edamos utilizar matrices introducidas por el usuario( en la funci\u00f3n rellenar dejo comentado como ser\u00eda para introducir los datos por el usuario).<\/p>\n\n\n\n<p>La suma y resta de matrices tiene la condici\u00f3n de que las matrices tienen que ser de la misma dimensi\u00f3n, tienen que tener el mismo n\u00famero de filas y de columnas. <br>Para efectuar la suma sumamos elemento a elemento:<br>el elemento (0,0) de la matriz 1 lo sumamos con el elemento (0,0) de la matriz 2 y obtenemos el elemento (0,0) de la matriz suma,<br> el elemento (0,1) de la matriz 1 lo sumamos con el elemento (0,1) de la matriz 2 y obtenemos el elemento (0,1) de la matriz suma y as\u00ed sucesivamente. <br>Para restar seguimos el procedimiento anterior pero cambiando suma por resta.<\/p>\n\n\n\n<p>Para multiplicar matrices las matrices tienen que cumplir la condici\u00f3n de que:<br>las filas de la matriz 1 = las columnas de la matriz 2<br>las columnas de la matriz 1 = las filas matriz 2 <br>La matriz resultante tendr\u00eda la dimensi\u00f3n :<br>[filas matriz 1 , columnas matriz 2]<br>Para efectuar la multiplicaci\u00f3n efectuamos la operacion:<br>matrizproducto(0,0) = matriz1(0,<strong>0<\/strong>) * matriz2(<strong>0<\/strong>,0) + matriz1(0,<strong>1<\/strong>) * matriz2(<strong>1<\/strong>,0)+matriz1(0,<strong>2<\/strong>)*matriz2(<strong>2<\/strong>,0)+matriz1(0,<strong>3<\/strong>)*matriz2(<strong>3<\/strong>,0)<br>Con esto obtendr\u00edamos el elemento (0,0) de la matriz producto.<br>matrizproducto(0,1) = matriz1(0,<strong>0<\/strong>) * matriz2(<strong>0<\/strong>,1) + matriz1(0,<strong>1<\/strong>) * matriz2(<strong>1<\/strong>,1)+matriz1(0,<strong>2<\/strong>)*matriz2(<strong>2<\/strong>,1)+matriz1(0,<strong>3<\/strong>)*matriz2(<strong>3<\/strong>,1)<br>Y asi sucesivamente hasta hayar todos los elementos de la matriz producto<\/p>\n\n\n\n<p> <\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">package aplicacion1;\n\nimport java.util.InputMismatchException;\nimport java.util.Scanner;\n\n\/**\n *\n * @author javi\n *\/\npublic class operaciones {\n\n   \n    public static void identidad(int dimension){\n        int ident[][]=new int[dimension][dimension];\n         for(int i=0;i&lt;ident.length;i++){\n            for(int j=0;j&lt;ident[i].length;j++){\n                if(i==j){\n                    ident[i][j]=1;\n                }else{\n                    ident[i][j]=0;\n                }\n                System.out.print(ident[i][j]+\" \");\n            }\n            System.out.println(\" \");\n        }\n        \n    }\n    \n    public static int[][] multiplicar(int mat1[][],int mat2[][],int dimension){\n        int multi[][]=new int[dimension][dimension];\n        System.out.println(\"Se va a proceder a multiplicar las matrices\");\n        int suma=0;\n        for(int i=0;i&lt;mat1.length;i++){\n            for(int j=0;j&lt;mat1[i].length;j++){\n                suma=0;\n                for(int k=0;k&lt;dimension;k++){\n                    suma=suma+mat1[i][k]*mat2[k][j];\n                }\n                multi[i][j]=suma;\n                System.out.print(multi[i][j]+\" \");\n                \n            }\n            \n            System.out.println(\" \");\n        }\n        return multi;\n    }\n    \n    public static int [][]restar(int mat1[][],int mat2[][],int dimension){\n        int resta[][]=new int[dimension][dimension]; \n        System.out.println(\"Se va a proceder a restar las matrices\");\n        for(int i=0;i&lt;mat1.length;i++){\n            for(int j=0;j&lt;mat1[i].length;j++){\n                resta[i][j]=mat1[i][j]-mat2[i][j];\n                System.out.print(resta[i][j]+\" \");\n            }\n            System.out.println(\" \");\n        }\n        return resta;\n    }\n    \n    public static int [][]sumar(int mat1[][],int mat2[][],int dimension){\n        int suma[][]=new int[dimension][dimension]; \n        System.out.println(\"Se va a proceder a sumar las matrices\");\n        for(int i=0;i&lt;mat1.length;i++){\n            for(int j=0;j&lt;mat1[i].length;j++){\n                suma[i][j]=mat1[i][j]+mat2[i][j];\n                System.out.print(suma[i][j]+\" \");\n            }\n            System.out.println(\" \");\n        }\n        return suma;\n    }\n    \n    public static void mostrar(int mat[][],int matriz){\n        System.out.println(\"Mostrando la matriz \"+matriz);\n        for(int i=0;i&lt;mat.length;i++){\n            for(int j=0;j&lt;mat[i].length;j++){\n                System.out.print(mat[i][j]+\" \");\n            }\n            System.out.println(\" \");\n        }\n        \n    }\n    \n    public static void rellenar(int mat[][],int matriz){\n        for(int i=0;i&lt;mat.length;i++){\n            for(int j=0;j&lt;mat[i].length;j++){\n                \/\/System.out.println(\"Dime un valor para la matriz \"+matriz+\" en la posicion(i \"+i+\", j \"+j+\")\");\n\/\/mat[i][j]=miteclado.nextInt();\n                mat[i][j]=(int)(Math.random()*9);\n            }\n        }\n    }\n    \n    \n    public static void main(String[] args) {\n        \/\/ TODO code application logic here\n        Scanner miteclado = new Scanner(System.in);\n        boolean salir=false;\n        int num=0;\n        while(!salir){\n            try{\n                System.out.println(\"cuantas filas y columnas quieres que tenga la matriz\");\n                num=miteclado.nextInt();\n                salir=true;\n            }catch(InputMismatchException e){\n                System.out.println(\"No puedes introducir otra cosa que no sea un numero\");\n                miteclado.nextLine();\n            }\n        }\n        salir=false;\n        int op=0;\n        while(!salir){\n            try{\n                System.out.println(\"1-sumar matrices\\n2-restar matrices\\n3-multiplicar matrices\\n4-matriz identidad\\n5-salir\");\n                op=miteclado.nextInt();\n                salir=true;\n            }catch(InputMismatchException e){\n                System.out.println(\"No puedes introducir otra cosa que no sea un numero\");\n                miteclado.nextLine();\n            }\n        }\n        int matriz1[][]=new int[num][num];\n        int matriz2[][]=new int[num][num];        \n        switch(op){\n            case 1:{\n                rellenar(matriz1,1);\n                rellenar(matriz2,2);\n                mostrar(matriz1,1);\n                mostrar(matriz2, 2);\n                sumar(matriz1, matriz2, num);\n                \n                break;\n            }\n            case 2:{\n                rellenar(matriz1,1);\n                rellenar(matriz2,2);\n                mostrar(matriz1,1);\n                mostrar(matriz2, 2);\n                restar(matriz1, matriz2, num);\n                break;\n            }\n            case 3:{\n                rellenar(matriz1,1);\n                rellenar(matriz2,2);\n                mostrar(matriz1,1);\n                mostrar(matriz2, 2);\n                multiplicar(matriz1, matriz2, num);\n                \n                break;\n            }\n            case 4:{\n                identidad(num);\n                break;\n            }\n            case 5:{\n                break;\n            }\n                \n        }\n               \n    }\n    \n}<\/pre>\n\n\n\n<p>El resultado seria algo como esto:<\/p>\n\n\n\n<p>cuantas filas y columnas quieres que tenga la matriz<br> 3<br> 1-sumar matrices<br> 2-restar matrices<br> 3-multiplicar matrices<br> 4-matriz identidad<br> 5-salir<br> 3<br> Mostrando la matriz 1<br> 6 0 0  <br> 7 6 8  <br> 6 4 5  <br> Mostrando la matriz 2<br> 4 3 7  <br> 3 7 0  <br> 2 7 4  <br> Se va a proceder a multiplicar las matrices<br> 24 18 42  <br> 62 119 81  <br> 46 81 62  <\/p>\n\n\n\n<p>Espero que les haya gustado \ud83d\ude09<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hola, hoy os traemos un programa en java que realiza operaciones (suma, resta, multiplicaci\u00f3n y matriz identidad) con matrices, en este ejemplo utilizamos matrices cuadradas aleatorias para que sea mas rapido pero podr\u00edamos utilizar matrices introducidas por el usuario( en la funci\u00f3n rellenar dejo comentado como ser\u00eda para introducir los datos por el usuario). La &hellip; <a href=\"https:\/\/dornisoft.es\/dorniblog\/operaciones-con-matrices-en-java-suma-resta-multiplicacion-matriz-identidad\/\" class=\"more-link\">Continuar leyendo<span class=\"screen-reader-text\"> \u00abOperaciones con matrices en Java (suma, resta, multiplicaci\u00f3n, matriz identidad)\u00bb<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[29],"tags":[],"class_list":["post-651","post","type-post","status-publish","format-standard","hentry","category-programacion"],"_links":{"self":[{"href":"https:\/\/dornisoft.es\/dorniblog\/wp-json\/wp\/v2\/posts\/651","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dornisoft.es\/dorniblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dornisoft.es\/dorniblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dornisoft.es\/dorniblog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dornisoft.es\/dorniblog\/wp-json\/wp\/v2\/comments?post=651"}],"version-history":[{"count":10,"href":"https:\/\/dornisoft.es\/dorniblog\/wp-json\/wp\/v2\/posts\/651\/revisions"}],"predecessor-version":[{"id":1272,"href":"https:\/\/dornisoft.es\/dorniblog\/wp-json\/wp\/v2\/posts\/651\/revisions\/1272"}],"wp:attachment":[{"href":"https:\/\/dornisoft.es\/dorniblog\/wp-json\/wp\/v2\/media?parent=651"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dornisoft.es\/dorniblog\/wp-json\/wp\/v2\/categories?post=651"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dornisoft.es\/dorniblog\/wp-json\/wp\/v2\/tags?post=651"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}