Ejemplo n.º 1
0
        //перегрузка оператора умножения для матриц
        public static Matrix operator *(Matrix M1, Matrix M2)
        {
            if (M1.ColumnNumber() != M2.RowNumber())

                throw new Exception("Матрицы нельзя перемножить");

            else
            {
                int nn=M1.RowNumber();

                int kk=M2.ColumnNumber();

                double[,] matr = new double[nn, kk];

                for (int i = 0; i < nn; i++)
                {
                    for (int j = 0; j < kk; j++)

                        matr[i, j] = 0;
                }

                for (int i = 0; i < nn; i++)
                {
                    for (int j = 0; j < kk; j++)
                    {
                        for (int s = 0; s < M2.RowNumber(); s++)

                            matr[i, j] += M1[i, s] * M2[s, j];
                    }
                }

                Matrix M = new Matrix(nn, kk, matr);

                return M;
            }
        }