今天是Java上机实验考试,考试内容很简单,就两道题,第一道题就考了接口,第二道题就考了矩阵的乘法(两个矩阵相乘,要求输出两个矩阵以及两个矩阵相乘得到的新的矩阵)。考完之后很多人竟然反应已经不会矩阵的乘法了??!哈哈哈!
下面就简单的分享一下如何用Java实现矩阵乘法吧:
首先如果在草稿纸上连矩阵的乘法都不会的,那么可以先回去学习线性代数之矩阵的乘法,,,嘿嘿。
矩阵乘法的定义:
设A为m * p的矩阵,B为p * n的矩阵,那么称m * n的矩阵C为矩阵A与B的乘积,记作C = AB,其中矩阵C中的第 i 行 第 j 列 元素可以表示为:
下面话不多说直接放代码实现吧:
public class juzhengchengfa {
public static void main(String[] args){
int[][] Arr = {{1,2,3},{4,5,6}}; //定义A为 2*3的矩阵
int[][] Brr = {{1,2,3,4},{5,6,7,8},{9,10,11,12}}; //定义B为 3*4的矩阵
int[][] Crr = new int[Arr.length][Brr[0].length]; //矩阵C = AB 是2*4的矩阵
int sum = 0; //计算矩阵C
for(int i = 0; i < Brr[0].length; i++){
for(int j = 0; j < Arr.length; j++){
for(int k = 0; k < Arr[0].length; k++){
sum += Arr[j][k] * Brr[k][i];
}
Crr[j][i] = sum;
}
}
for(int i = 0; i < Arr.length; i++){ //输出矩阵A
for(int j = 0; j < Arr[0].length; j++){
System.out.print(Arr[i][j] + " ");
}
System.out.println();
}
System.out.println("--------------------");
for(int i = 0; i < Brr.length; i++){ //输出矩阵B
for(int j = 0; j < Brr[0].length; j++){
System.out.print(Brr[i][j] + " ");
}
System.out.println();
}
System.out.println("--------------------");
for(int i = 0; i < Crr.length; i++){ //输出矩阵C
for(int j = 0; j < Crr[0].length; j++){
System.out.print(Crr[i][j] + " ");
}
System.out.println();
}
}
}
同时自己也巩固学习吧!!