Multiplicar matriz por vector columna en Java

09/Ago/2015 Java , , , 3 Comentarios
Programación en Java

Para conseguir multiplicar matriz por vector columna en Java nos puede servir sencillamente el ejemplo de como multiplicar matrices asegurándonos que una de las matrices tiene una sola columna.

int[][] m1 = {{1,0,2},{-1,3,1}};
int[][] m2 = {{3},{2},{1}};

De esta sencilla forma habríamos conseguido multiplica matriz por vector columna en Java.

resultado = Matriz.multiplicar(m1, m2);

Recuerda revisar la clase Matriz.java la cual contiene todos los ejemplos de manipulación de matrices de Línea de Código.

Pero sabemos que en Java hay otra forma de representar los Vectores para almacenar los elementos, las cuales no nos implique crear un array bidimensional. Por ejemplo podemos tener un simple array para representar el vector columna.

int[] v = {3,2,1};

Así que ahora para conseguir multiplicar matriz por vector lo que haremos será multiplicar un array bidimensional por un array.

Vayamos paso a paso. Vamos a guardarnos los valores de los tamaños de filas y columnas.

int fil_m1 = m1.length;
int col_m1 = m1[0].length;
		
int fil_m2 = v.length;
int col_m2 = 1;

Vemos que en el caso del vector las columnas es igual a 1.

Ahora tenemos que comprobar que el número de columnas de la matriz coincide con el número de elementos del array. Como ya lo habíamos guardado en las variables tenemos que:

if (col_m1 != fil_m2)
  throw new RuntimeException("No se pueden multiplicar las matrices");

La matriz resultado será del número de filas por una columna.

int[][] multiplicacion = new int[fil_m1][1];

Lo siguiente será ya pasar al bucle de multiplicación. Hay que recordar que para multiplicar matrices deberemos de utilizar tres bucles anidados. Los dos primeros nos dan la posición del resultado en la matriz destino.

for (int x=0; x < multiplicacion.length; x++) {
  for (int y=0; y < multiplicacion[x].length; y++) {
    ...
  }
}

El tercer bucle es el que multiplica la fila por la columna. En este caso la fila por cada uno de los elementos del array y los va sumando para dejar en la posición de la matriz.

for (int x=0; x < multiplicacion.length; x++) {
  for (int y=0; y < multiplicacion[x].length; y++) {
    // El nuevo bucle suma la multiplicación de la fila por la columna
    for (int z=0; z

De esta forma habremos conseguido multiplicar matriz por vector columna en Java.

Vídeos sobre Java


3 comentarios en “Multiplicar matriz por vector columna en Java”

Víctor Cuervo

Claudio

Hola, te quería preguntar cómo resolver esté ejercicio : Escriba en pseudocódigo la multiplicación escalar y vectorial de dos vectores de 100
elementos. Gracias

Víctor Cuervo

sergio

Determinar el estado de un alumno de una institución educativa en base a el promedio de sus notas, ingresando 3 notas: Aprobado si es mayor o igual a 14 y Desaprobado si es menor de 14.

Víctor Cuervo

Víctor Cuervo

Buenas,

Puedes almacenar las notas en 3 variables o en un array y luego sumarlas. Al final una estructura if te ayudará a decir si es aprobado o no.

Saludos.

¿Algo que nos quieras comentar?

Déjanos tu comentario, no te preocupes que tu email no será publicado

*

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.