Java矩陣(Matrix)相乘的詳細拆解步驟說明:

假設有一個 A矩陣 [2x3]如下:

B矩陣[3x4]如下:

其相乘的結果是:

以下圖示說明了其相乘的步驟:

Matrix_Multiply_Step1.JPGMatrix_Multiply_Step2.JPGMatrix_Multiply_Step3.JPGMatrix_Multiply_Step4.JPG

Matrix_Multiply_Step5.JPGMatrix_Multiply_Step6.JPGMatrix_Multiply_Step7.JPGMatrix_Multiply_Step8.JPG

Java 程式碼如下:

public class Matrix_Multiply {
    // 主程式 
    public static void main(String[] args) { 
        int a[][] =
 // m x n = 2 x 3
        {{1,2,3},
         {4,5,6}};
        
        int max_m = a.length;
 // max_m = 2
        int max_n = a[0].length;  // max_n = 3
         
        int b[][] =
 // n x p = 3 x 4
        {{1,2,3,4},
         {2,3,4,5},
         {3,4,5,6}};         
        
        int max_p = b[0].length;
// max_p = 4
        
        // c = m x p = 2 x 4
        
        int c[][] = new int[max_m][max_p];
 // c[2][4]
        
        for (int m=0; m <max_m; m++){
          for (int p=0; p<max_p; p++){
            for (int n=0; n<max_n; n++) {
              c[m][p] = c[m][p] + a[m][n] * b[n][p];
            }
          }
        }
        
        for (int m=0; m<max_m; m++){
           for (int p=0; p<max_p; p++){
             if  (p==0) 
                 System.out.print("[");
             System.out.print(c[m][p]);    
             if (p==(max_p-1))
                System.out.print("]");
             else   
                System.out.print(",");
           }  
           System.out.println("");  
        }
    }
}

 

執行結果如下:
[14,20,26,32]
[32,47,62,77]

 

arrow
arrow
    文章標籤
    Java Matrix
    全站熱搜

    DanBrother 發表在 痞客邦 留言(0) 人氣()