package Lecture21; public class MatrixMain { public static void main(String argv[]) { Matrix mat1 = new Matrix(3,3); Matrix mat2 = new Matrix(3,3); Matrix res; mat1.setIdentity(); mat2.setIdentity(); res = mat1.addMatrices(mat2); System.out.println("matr1:"); mat1.print(); System.out.println("matr2:"); mat2.print(); System.out.println("matr1 + matr2:" ); res.print(); Matrix mat3= new Matrix(4, 2); Matrix mat4= new Matrix(2, 3); Matrix res2; for (int i=0; i < mat3.getNumRows(); i++) for (int j= 0; j < mat3.getNumCols(); j++) mat3.setElement(i, j, i*j); for (int i=0; i < mat4.getNumRows(); i++) for (int j= 0; j < mat4.getNumCols(); j++) mat4.setElement(i, j, 2*(i+j)); res2= mat3.multMatrices(mat4); System.out.println("matr3:"); mat3.print(); System.out.println("matr4:"); mat4.print(); System.out.println("matr3 * matr4:" ); res2.print(); DiagonalMatrix mat5= new DiagonalMatrix(4); for (int i= 0; i < mat5.getNumRows(); i++) mat5.setElement(i, i, i+1); // La firma es la misma que en una matriz normal Matrix res3; res3= mat5.multMatrices(res2); System.out.println("mat5:"); mat5.print(); System.out.println("res2:"); res2.print(); System.out.println("mat5 * res2:" ); res3.print(); // Observe que es asimétrica: // DiagonalMatrix tiene un método para multiplicar por un objeto Matrix // Matrix no tiene ningún método para multiplicar por un objeto DiagonalMatrix // Evidentemente, podríamos crear uno. } }