Assume two matrices are to be multiplied (the generalization to any number is discussed below). If A is an n×m matrix and B is an m×p matrix, the result AB of their multiplication is an n×p matrix defined only if the number of columns m in A is equal to the number of rows m in B.


where necessarily the number of columns in A equals the number of rows in B, in this case m, the matrix product AB is denoted without symbol (no multiplication signs or dots) to be the n×p matrix





        public static void Multiply(int[,] matrixA, int[,] matrixB)
            int columnA = matrixA.GetLength(1);
            int columnB = matrixB.GetLength(1);

            int rowA = matrixA.GetLength(0);
            int rowB = matrixB.GetLength(0);

            if (columnA != rowB)
                Console.WriteLine("Matrix cannot be multiplied");

            Console.WriteLine("matrix A");

            Console.WriteLine("matrix B");

            int k = 0;
            int[,] result = new int[rowA, columnB];
            int sum = 0;

            for (int i = 0; i < rowA; i++)
                for (int j = 0; j < columnB; j++)
                    result[i, j] = 0;
                    sum = 0;
                    for (k = 0; k < columnA; k++)
                        sum = sum + matrixA[i, k] * matrixB[k, j];
                    result[i, j] = sum;
            Console.WriteLine("Result Matrix");