public class Matriz {
public int numeroFilas;
public int numeroColumnas;
public double [][] matriz;
public Matriz (){
}
/**
* constructor con parametros
* @param nF
* @param nC
*/
public Matriz (int nF, int nC){
numeroFilas= nF;
numeroColumnas=nC;
matriz=new double [numeroFilas][numeroColumnas];
for (int i=0; i< numeroFilas; i++)
for (int j=i; j
}
/**
* metodo de suma de matrices
* @param B es el primer sumando
* @return matriz resultado de suma
*/
public Matriz suma (Matriz B){
Matriz resultado;
if((this.numeroFilas==B.numeroFilas)&
(this.numeroColumnas==B.numeroColumnas)){
resultado =new Matriz(this.numeroFilas,this.numeroColumnas);
for (int i=0; i< this.numeroFilas;i++)
for(int j=0;j
return resultado;
}
else{
System.out.println("Error en dimensiones de las matrices");
resultado = null;
return resultado;
}
}
/**
* metodo de suma de matrices
* @param B parametro del sustraendo
* @return la resta
*/
public Matriz resta (Matriz B){
Matriz resultado;
if((this.numeroFilas==B.numeroFilas)&
(this.numeroColumnas==B.numeroColumnas)){
resultado =new Matriz(this.numeroFilas,this.numeroColumnas);
for (int i=0; i< this.numeroFilas;i++)
for(int j=0;j
return resultado;
}
else{
System.out.println("Error en dimensiones de las matrices");
resultado = null;
return resultado;
}
}
public Matriz multiplicacion (Matriz B){
Matriz resultado;
if((this.numeroColumnas==B.numeroFilas)&(this.numeroColumnas ==B.numeroColumnas)){
resultado = new Matriz (this.numeroFilas,this.numeroFilas);
for(int i =0; i< this.numeroFilas; i++ )
for(int j = 0; j< this.numeroColumnas; j++ )
resultado.matriz [i][j] = this.matriz[i][j]+B.matriz[i][j];
return resultado;
}
else
System.out.println("Error en dimenciones de la matriz");
resultado = null;
return resultado;
}
public Matriz transpuesta() {
Matriz resultado;
resultado = new Matriz(this.numeroColumnas,this.numeroFilas);
for (int i=0;i < this.numeroFilas; i++)
for(int j=0 ; j< this.numeroColumnas; j++)
resultado.matriz[j][i]= this.matriz[i][j];
return resultado;
}
/**
* Devuelve el objeto matriz en texto
* @return
*/
public String toString(){
String aux ="[";
for (int i=0; i< numeroFilas; i++)
for (int j=0;j
}
aux += "\n";
aux += "]";
return aux;
}
}
------------------------------------------------------------------
public class PruebaMatriz {
public static void main(String args[]){
Matriz c = new Matriz(2,3);
c.matriz[0][0]=2;c.matriz[0][1]=2; c.matriz[0][2]=1;
c.matriz[1][0]=3; c.matriz[1][1]=-1;c.matriz[1][2]=0;
System.out.println(c.toString());
Matriz b = new Matriz(5,3);
b.matriz[0][0]=6; b.matriz[0][1]=-2; b.matriz[0][2]=5;
b.matriz[1][0]=4; b.matriz[1][1]=2; b.matriz[1][2]=-1;
b.matriz[2][0]=0; b.matriz[2][1]=1; b.matriz[2][2]=1;
b.matriz[3][0]=-2; b.matriz[3][1]=-2; b.matriz[3][2]=0;
b.matriz[4][0]=1; b.matriz[4][1]=0; b.matriz[4][2]=-1;
System.out.println(b.toString());
Matriz a = new Matriz(1,5);
a.matriz[0][0]=1;a.matriz[0][1]=-1; a.matriz[0][2]=0;
a.matriz[0][3]=1; a.matriz[0][4]=1;
System.out.println(a.toString());
Matriz e = new Matriz(3,3);
e.matriz[0][0]=-1; e.matriz[0][1]=0; e.matriz[0][2]=-1;
e.matriz[1][0]=1; e.matriz[1][1]=0; e.matriz[1][2]=1;
e.matriz[2][0]=-1; e.matriz[2][1]=1; e.matriz[2][2]=-1;
System.out.println(e.toString());
Matriz r1;
r1=c.multiplicacion(e);
Matriz bt;
bt=b.transpuesta ();
Matriz rt1;
rt1=r1.multiplicacion(bt);
System.out.println(rt1.toString());
}
}
---------------------------------------------
run:
[2.0 2.0 1.0 3.0 -1.0 0.0
]
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2
[6.0 -2.0 5.0 4.0 2.0 -1.0 0.0 1.0 1.0 -2.0 -2.0 0.0 1.0 0.0 -1.0
]
at Matriz.multiplicacion(Matriz.java:100)
[1.0 -1.0 0.0 1.0 1.0
at PruebaMatriz.main(PruebaMatriz.java:43)
]
[-1.0 0.0 -1.0 1.0 0.0 1.0 -1.0 1.0 -1.0
]
Java Result: 1
BUILD SUCCESSFUL (total time: 3 seconds)