public Matrix matrixTranspose() { // 矩阵转置
    int i, j;
    Matrix trans_matrix = new Matrix();

    for (i = 0; i < getLine(); i++)
      for (j = 0; j < getRow(); j++) trans_matrix.setElement(j, i, this.getElement(i, j));
    trans_matrix.setLine(getLine());
    trans_matrix.setRow(getRow());
    trans_matrix.setAccuracy(getAccuracy());
    return trans_matrix;
  }
  public static Matrix matrixMinus(Matrix matrix1, Matrix matrix2) { // 矩阵减法
    int i, j;
    Matrix matrix = new Matrix();

    for (i = 0; i < matrix1.getLine(); i++)
      for (j = 0; j < matrix1.getRow(); j++)
        matrix.setElement(i, j, matrix1.getElement(i, j) - matrix2.getElement(i, j));
    matrix.setLine(matrix1.getLine());
    matrix.setRow(matrix1.getRow());
    matrix.setAccuracy(matrix1.getAccuracy());
    return matrix;
  }
  public static Matrix matrixCopy(Matrix matrix) { // 矩阵复制
    int i, j;
    Matrix matrix_copy = new Matrix();

    matrix_copy.setLine(matrix.getLine());
    matrix_copy.setRow(matrix.getRow());
    matrix_copy.setAccuracy(matrix.getAccuracy());
    matrix_copy.setName(matrix.getName());
    for (i = 0; i < matrix.getLine(); i++)
      for (j = 0; j < matrix.getRow(); j++) matrix_copy.setMatrixArray(matrix.getMatrixArray());
    return matrix_copy;
  }
  public static Matrix scanMatrix() { // 输入矩阵
    int i, j;
    Matrix matrix = new Matrix();
    Scanner scanner = new Scanner(System.in);

    matrix.setLine(scanner.nextInt());
    matrix.setRow(scanner.nextInt());
    matrix.setAccuracy(scanner.nextDouble());
    for (i = 0; i < matrix.getLine(); i++) {
      for (j = 0; j < matrix.getRow(); j++) matrix.setElement(i, j, scanner.nextDouble());
    }
    return matrix;
  }
  public static Matrix matrixMultiply(Matrix matrix1, Matrix matrix2) { // 矩阵乘法
    int i, j, k;
    Matrix matrix = new Matrix();

    matrix.setLine(matrix1.getLine());
    matrix.setRow(matrix2.getRow());
    matrix.setAccuracy(matrix1.getAccuracy());
    for (i = 0; i < matrix.getLine(); i++)
      for (j = 0; j < matrix.getRow(); j++) matrix.setElement(i, j, 0.0);
    for (i = 0; i < matrix.getLine(); i++)
      for (j = 0; j < matrix.getRow(); j++)
        for (k = 0; k < matrix1.getRow(); k++)
          matrix.setElement(
              i, j, matrix.getElement(i, j) + matrix1.getElement(i, k) * matrix2.getElement(k, j));
    return matrix;
  }