/* Classe de stockage d'une matrice rectangulaire */ /* de float de nombre de lignes et de colonnes */ /* arbitraires */ /* */ /* Auteur: Nicolas JANEY */ /* nicolas.janey@univ-fcomte.fr */ /* Novembre 2009 */ public class Matrice { public float [][] c; public Matrice(int lignes,int colonnes) { c = new float[lignes][colonnes]; } public Matrice(float [][] v) { c = new float[v.length][v[0].length]; for ( int i = 0 ; i < v.length ; i++ ) for ( int j = 0 ; j < v[i].length ; j++ ) c[i][j] = v[i][j]; } public Matrice(Matrice m) { c = new float[m.c.length][m.c[0].length]; for ( int i = 0 ; i < m.c.length ; i++ ) for ( int j = 0 ; j < m.c[i].length ; j++ ) c[i][j] = m.c[i][j]; } public Vecteur multiplication(Vecteur v) { if ( v.c.length == c[0].length ) { Vecteur r = new Vecteur(c.length); for ( int i = 0 ; i < c.length ; i++ ) for ( int j = 0 ; j < c[0].length ; j++ ) r.c[i] += c[i][j]*v.c[j]; return(r); } return(null); } public Matrice multiplication(Matrice m) { if ( m.c.length == c[0].length ) { Matrice r = new Matrice(c.length,m.c[0].length); for ( int i = 0 ; i < c.length ; i++ ) for ( int j = 0 ; j < m.c[0].length ; j++ ) for ( int k = 0 ; k < m.c.length ; k++ ) r.c[i][j] += c[i][k]*m.c[k][j]; return(r); } return(null); } public String toString() { String s = "["; for ( int j = 0 ; j < c.length ; j++ ) { s += "["; for ( int i = 0 ; i < c[j].length ; i++ ) s += (c[j][i]+","); s += "]\n"; } s += "]"; return(s); } }