Java矩陣(Matrix)相乘的詳細拆解步驟說明:
假設有一個 A矩陣 [2x3]如下:
B矩陣[3x4]如下:
其相乘的結果是:
以下圖示說明了其相乘的步驟:
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]