/// <summary> /// Une version statique de création d'une matrice nulle /// </summary> /// <param name="size"></param> /// <returns>La matrice nulle</returns> public static Matrice zero(int size) { var _result = new Matrice(size); _result.zero(); return(_result); }
public static Matrice operator ~(Matrice Matrice) { var result = Matrice.clonner(); result.inverser(); return(result); }
/// <summary> /// Clonner une matrice /// </summary> /// <returns>Retourne une copie de la matrice</returns> public Matrice clonner() { var _result = new Matrice(Lignes, Colonnes); for (int _ligne = 0; _ligne < Lignes; _ligne++) { for (int colonne = 0; colonne < Colonnes; colonne++) { _result[_ligne + 1, colonne + 1] = _matrice[_ligne, colonne]; } } return(_result); }
/// <summary> /// Créer des valeur aléatoires de matrice /// </summary> public Matrice aléa() { var _result = new Matrice(Lignes, Colonnes); for (int _ligne = 0; _ligne < Lignes; _ligne++) { for (int _colonne = 0; _colonne < Colonnes; _colonne++) { _result[_ligne + 1, _colonne + 1] = new Random().Next(1, 50); } } return(_result); }
/// <summary> /// Méthode qui transpose une matrice /// </summary> public Matrice transpose() { Matrice _result = new Matrice(Colonnes, Lignes); for (int _ligne = 0; _ligne < _matrice.GetLength(0); _ligne++) { for (int _colonne = 0; _colonne < _matrice.GetLength(1); _colonne++) { _result[_colonne, _ligne] = _matrice[_ligne, _colonne]; } } return(_result); }
/// <summary> /// Une méthode qui permet le calcul la différence de deux matrices /// </summary> /// <param name="matrice">Représente une matrice</param> public void soustraction(Matrice matrice) { if (Lignes != matrice.Lignes || Colonnes != matrice.Colonnes) { throw new InvalidOperationException("Cannot add matrices of different sizes."); } for (int _ligne = 0; _ligne < _matrice.GetLength(0); _ligne++) { for (int _colonne = 0; _colonne < _matrice.GetLength(1); _colonne++) { _matrice[_ligne, _colonne] -= matrice[_ligne + 1, _colonne + 1]; } } }
/// <summary> /// Une méthode qui calcule le produit Hadamard de deux matrices /// </summary> /// <param name="matrice">Représente une matrice</param> public void hadamardProduct(Matrice matrice) { if (Colonnes != matrice.Colonnes || Lignes != matrice.Lignes) { throw new InvalidOperationException("Il n'est pas possible de multiplier " + "deux matrices qui non pas la même taille"); } for (int _ligne = 0; _ligne < Lignes; _ligne++) { for (int _colonne = 0; _colonne < Colonnes; _colonne++) { _matrice[_ligne, _colonne] *= matrice[_ligne + 1, _colonne + 1]; } } }
static void Main(string[] args) { Matrice m1 = new Matrice(3, 3); Matrice m2 = new Matrice(3, 3); for (int i = 1; i <= 3; i++) { for (int j = 1; j <= 3; j++) { m1[i, j] = new Random().Next(10, 20); } } Matrice resultat = ~m1; Console.WriteLine($"{resultat.affiche()}"); Console.ReadLine(); }