1. 程式人生 > >C#矩陣乘法

C#矩陣乘法

/// <summary> 
        /// <summary> 
        /// 矩陣乘法 
        /// </summary> 
        /// <param name="matrix1">矩陣1</param> 
        /// <param name="matrix2">矩陣2</param> 
        /// <returns>積</returns> 
        private static double[][] MatrixMult(double[][] matrix1, double[][] matrix2)
        {
            //matrix1是m*n矩陣,matrix2是n*p矩陣,則result是m*p矩陣 
            int m = matrix1.Length, n = matrix2.Length, p = matrix2[0].Length;
            double[][] result = new double[m][];
            for (int i = 0; i < result.Length; i++)
            {
                result[i] = new double[p];
            }
            //矩陣乘法:c[i,j]=Sigma(k=1→n,a[i,k]*b[k,j]) 
            for (int i = 0; i < m; i++)
            {
                for (int j = 0; j < p; j++)
                {
                    //對乘加法則 
                    for (int k = 0; k < n; k++)
                    {
                        result[i][j] += (matrix1[i][k] * matrix2[k][j]);
                    }
                }
            }
            return result;
        }
/// <summary> 
        /// 列印矩陣 
        /// </summary> 
        /// <param name="matrix">待列印矩陣</param> 
        private static void PrintMatrix(double[][] matrix)
        {
            for (int i = 0; i < matrix.Length; i++)
            {
                for (int j = 0; j < matrix[i].Length; j++)
                {
                    Console.Write(matrix[i][j] + "\t");
                }
                Console.WriteLine();
            }
        }