problema con matriz en java

redcar

Bovino adicto
#1
Que onda corral, quiero ver si hay alguien que me oriente con un problema de matriz, siempreque se llenan, se llena de izquierda a derecha y pasa al siguiente renglon, lo que yo quiero saber es si hay alguna forma de llenarlo de aariba hacia abajo y pasar a la siguiente columna,

y tambien saber como puedo hacer lo siguiente:

1 2 3 4 5
6 7 8 9 0
1 2 3 4 5

pasar esa matriz a la siguiente posicion:

1 6 1
2 7 2
3 8 3
4 9 4
5 0 5

he intentado varias formas entre todas esta esta:

class Matriz{
public static void main(String args[])
{
int H[][] = new int[2][3];
int V[][] = new int[3][2];

for(int i=0;i<H.length;i++)
{
for(int j=0;j<H[0].length;j++)
{
H[j]=Leer.datoInt();


}
}

for(int a=0;a<V.length;a++)
{
for(int b=0;b<V[0].length;b++)
{
V[a]=H[a];

}
}

System.out.println("--------------Resultado--------------");
for(int i=0;i<V.length;i++)
{
for(int j=0;j<V[0].length;j++)
{
System.out.print(+V[j]);
}
System.out.println();
}
}
}


espero que haya alguien que me ayude gracias!
 

malvadomx

Bovino maduro
#2
a ver, para empezar la matriz deberia de ser de [2][4] y la otra de [4][2]. y pues la logica es asi mira...

en u primera matriz el 1 esta en la posicion 0,0 osea en la fila 0 columna 0, el numero 2 esta en la fila 0 columna 1, el 3 en la fila 0 columna 2, el 4 en la fila 0 columna 3, el 5 en la fila 0 columna 4. entonces es solamente modificar la posicion de filas por columnas.

entonces si el 1 en la fila 0 columna 0 entonces nada mas cambias el valor la fila va a ser 0 la columna 0, el segundo numero 2 esta en la fila 0 y columna 1, entonces pasaria a estar en la fila 1 columna 0, el 3 esta en la fila 0 columna columna 2, pasaria a estar en la fila 2 columna 0... etc. entonces si ves donde haces el ciclo para meter los valores a la matriz V, solamente cambia a,b por b,a y asi tomaria su posicion correcta
 

lestatab

Bovino maduro
#3
Jeje, es algo sencillo, sé práctico, te recomiendo mucho hacer pruebas de escritorio.
Algo así, analízalo y adaptalo!
for (int columna = 0; columna<matrizOriginal.length(); columna++){
for (int fila = 0; fila<matrizOriginal.lenth(); fila++){
matrizNueva[c,f] = matrizOriginal[f,c];
}
}
Imprimes la nueva con tus dos 'for' y listo!
Saludos..
PD. Si me confundí haí me dicen porfa... y Checate este manual, pa practicar
http://sisuatf.galeon.com/pro2/matrices.pdf
 

redcar

Bovino adicto
#4
a ver, para empezar la matriz deberia de ser de [2][4] y la otra de [4][2]. y pues la logica es asi mira...

en u primera matriz el 1 esta en la posicion 0,0 osea en la fila 0 columna 0, el numero 2 esta en la fila 0 columna 1, el 3 en la fila 0 columna 2, el 4 en la fila 0 columna 3, el 5 en la fila 0 columna 4. entonces es solamente modificar la posicion de filas por columnas.

entonces si el 1 en la fila 0 columna 0 entonces nada mas cambias el valor la fila va a ser 0 la columna 0, el segundo numero 2 esta en la fila 0 y columna 1, entonces pasaria a estar en la fila 1 columna 0, el 3 esta en la fila 0 columna columna 2, pasaria a estar en la fila 2 columna 0... etc. entonces si ves donde haces el ciclo para meter los valores a la matriz V, solamente cambia a,b por b,a y asi tomaria su posicion correcta

gracias por la respuesta carnal, ps creo que me dics algo que ya sabia, y eso de cambiar la a,b por b,a genera error, ya lo habia intentado

gracias!!:vientos:
 

redcar

Bovino adicto
#5
Jeje, es algo sencillo, sé práctico, te recomiendo mucho hacer pruebas de escritorio.
Algo así, analízalo y adaptalo!
for (int columna = 0; columna<matrizOriginal.length(); columna++){
for (int fila = 0; fila<matrizOriginal.lenth(); fila++){
matrizNueva[c,f] = matrizOriginal[f,c];
}
}
Imprimes la nueva con tus dos 'for' y listo!
Saludos..
PD. Si me confundí haí me dicen porfa... y Checate este manual, pa practicar
http://sisuatf.galeon.com/pro2/matrices.pdf

que onda carnal, gracias por la respuesta, creo que ya lo intente =, pero marca error, de todas formas, ahorita vuelvo a checar haber si agarra, y muchas gracias por el manual

me va a ayudar mucho

Gracias!!:chavo:
 

redcar

Bovino adicto
#6
por cierto, la matriz puede ser [2][3] y [3][2] no forzosamente [2][4] y [4][2] eso no tiene ni razon pero gracias!!
 

lestatab

Bovino maduro
#7
Pues ya copie tu codigo, y con la solucion que te mande da buen resultado:

public static void main(String[] args)
{
//
// TODO: Agregar aquí el código para iniciar la aplicación
//
int H[][] = new int[2][3];
int V[][] = new int[3][2];

for (int i = 0; i < H.length; i++)
{
for (int j = 0; j < H[0].length; j++)
{
H[j] = Leer.datoInt();


}
}

for (int a = 0; a < H[0].length; a++)
{
for (int b = 0; b < H.length; b++)
{
V[a] = H[a];
}
}


System.out.println("--------------Resultado--------------");
for (int i = 0; i < V.length; i++)
{
for (int j = 0; j < V[0].length; j++)
{
System.out.print(+V[j]);
}
System.out.println();
}
System.out.println("--------------Resultado--------------");
}
 
Arriba