Java - Transponer Matrices

 
Vista:
Imágen de perfil de Gabriel
Val: 23
Ha aumentado su posición en 4 puestos en Java (en relación al último mes)
Gráfica de Java

Transponer Matrices

Publicado por Gabriel (8 intervenciones) el 24/06/2020 10:38:42
Hola,

estudio programacion por mi mismo y unos de los ejercicios es tener 2 matrices la primera de 5x9, y la segunda de 9x5, tengo que transponer la primer en la segunda, no he podido encontrar respuesta.

Muchas gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Kabuto
Val: 2.717
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Transponer Matrices

Publicado por Kabuto (706 intervenciones) el 24/06/2020 11:43:09
Hola.

Como ya sabrás, para recorrer los elementos de una matriz solemos usar dos bucles anidados.
Cada bucle tiene un indice, y usando ambos indices apuntamos a cada elemento de la matriz.
Si la matriz tiene 5 filas y 9 columnas (5x9), el primer indice va de 0 a 5 y el segundo de 0 a 9.

Bien, una matriz transpuesta, su diferencia respecto al original es únicamente que intercambian filas y columnas.
Lo que en la matriz original es una fila, en la transpuesta es una columna, y las columnas son filas.
Entonces, si 5x9 transponemos a 9x5, significa que su primer indice ha de ir de 0 a 9 y el segundo de 0 a 5.

Como ves, los indices hacen los mismos recorridos, solo que intercambiados.

De esto deducimos que podemos transponer una matriz usando los mismos indices, pero intercambiando el orden según si nos referimos a la matriz original o a la transpuesta.
Es decir, el indice que usamos para las filas de una matriz, lo usaremos también para las columnas de la otra. Y el de las columnas de una servirá para las filas de la otra.

Aquí un código de ejemplo. Marco en negrita la parte donde se hace la transposición.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
public class Transponer {
 
	public static void main(String[] args) {
 
		int[][] matriz = {{1,1,1,1,1,1,1,1,1},
						  {2,2,2,2,2,2,2,2,2},
						  {3,3,3,3,3,3,3,3,3},
						  {4,4,4,4,4,4,4,4,4},
						  {5,5,5,5,5,5,5,5,5}};
 
		System.out.println("Matriz original 5x9:\n");
		for (int f = 0; f < 5; f++) {
			for (int c = 0; c < 9; c++)
				System.out.print(matriz[f][c] + " ");
 
			System.out.println();
		}
 
		int[][] transpuesta = new int[9][5];
 
		//Transponemos
		for (int f = 0; f < 5; f++)
			for (int c = 0; c < 9; c++)
				transpuesta[c][f] = matriz[f][c];
 
		//Mostramos transpuesta
		System.out.println("\nMatriz transpuesta 9x5:\n");
		for (int f = 0; f < 9; f++) {
			for (int c = 0; c < 5; c++)
				System.out.print(transpuesta[f][c] + " ");
 
			System.out.println();
		}
 
	}
 
}

En pantalla nos da este resultado:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Matriz original 5x9:
 
1 1 1 1 1 1 1 1 1
2 2 2 2 2 2 2 2 2
3 3 3 3 3 3 3 3 3
4 4 4 4 4 4 4 4 4
5 5 5 5 5 5 5 5 5
 
Matriz transpuesta 9x5:
 
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de Gabriel
Val: 23
Ha aumentado su posición en 4 puestos en Java (en relación al último mes)
Gráfica de Java

Transponer Matrices

Publicado por Gabriel (8 intervenciones) el 24/06/2020 13:43:12
Buaaaaa muchas gracias pense sinceramente que era mas complicado e intente mil cosas, gracias por dejarlo tan sencillo.

Maestro
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar