⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 matrixmultiply.java

📁 JAVA 经典代码
💻 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 + -