コード例 #1
0
        /// <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);
        }
コード例 #2
0
        public static Matrice operator ~(Matrice Matrice)
        {
            var result = Matrice.clonner();

            result.inverser();
            return(result);
        }
コード例 #3
0
        /// <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);
        }
コード例 #4
0
        /// <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);
        }
コード例 #5
0
        /// <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);
        }
コード例 #6
0
 /// <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];
         }
     }
 }
コード例 #7
0
 /// <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];
         }
     }
 }
コード例 #8
0
        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();
        }