📄 matrixmultiply.java
字号:
public class MatrixMultiply {
public static void main(String[] argv) {
int x[][] = new int[2][3]; // 声明二维数组x
int y[][] = { // 声明二维数组同时进行初始化
{ 1, 4 },
{ 5, 2 },
{ 6, 3 },
};
// 为数组x的元素进行赋值
for ( int i = 0; i < 2; i++)
for( int j = 0; j < 3; j++)
x[i][j] = (i+1)*(j+3);
int result[][] = Matrix.multiply(x, y);
System.out.println("矩阵");
Matrix.printMatrix(x);
System.out.println("与矩阵");
Matrix.printMatrix(y);
System.out.println("相乘结果矩阵为");
Matrix.printMatrix(result);
} // main方法结束
} // 类MatrixMultiply结束
//声明矩阵类
class Matrix {
public static int[][] multiply(int[][] m1, int[][] m2) {
int m1rows = m1.length; // 取m1矩阵行数
int m1cols = m1[0].length; // 取m1矩阵列数
int m2rows = m2.length; // 取m2矩阵行数
int m2cols = m2[0].length; // 取m2矩阵列数
//检查第一个矩阵的列数与第二个矩阵的行数是否相同
if (m1cols != m2rows)
throw new IllegalArgumentException("第一个矩阵的列数与第二个矩阵的行数不相同" +
",矩阵相乘无意义");
int[][] result = new int[m1rows][m2cols];
for (int i=0; i<m1rows; i++)
for (int j=0; j<m2cols; j++) {
result[i][j] = 0; //对结果数组进行初始化
// 数组m1与数组m2相乘的结果赋给数组result
for (int k = 0; k < m1cols; k++)
result[i][j] += m1[i][k] * m2[k][j];
}
return result;
} // 类MatrixMultiply结束
// 打印矩阵
public static void printMatrix(int[][] a) {
int rows = a.length;
int cols = a[0].length;
System.out.println("array["+rows+"]["+cols+"] = {");
for (int i=0; i<rows; i++) {
System.out.print("{");
for (int j=0; j<cols; j++)
if (j == cols - 1)
System.out.print(" " + a[i][j] + " ");
else
System.out.print(" " + a[i][j] + ",");
System.out.println("},");
}
System.out.println("}");
} // printMatrix方法结束
} // 类Matrix结束
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -