Hey. So my assignment was to read the text files to form the matrices and then perform various functions such as addition and multiplication on the matrices. I fixed some of the errors but the compiler refuses to accept the .get and .set methods for some reason.

```
import java.io.*;
import java.util.*;
import java.util.Scanner;

 class Matrix {
  double [][] element;
  int rows, cols ;

 Matrix(int rows, int cols){
    this.rows = rows;
    this.cols = cols;
    element = new double [rows][cols];
 }

public double getValue (int row, int col){
return element[row][col];
}

public void setValue (int row, int col, double value){
element[row][col] = value;
}

 public int getNoRows(){  // returns the total number of rows
  return rows;
}

 public int getNoCols(){ // returns the total number of cols
  return cols;
}

// The methods for the main calculations

  public Matrix AddMatrix(Matrix m2){
  int row1 = getNoRows();
  int col1 = getNoCols();
  Matrix result = new Matrix(row1, col1);

  for (int i=0; i<row1; i++){
      for (int j=0; j<col1; j++) {
          result.setValue(i,j, (getValue(i,j) + m2.getValue(i,j)));
     }
}
  return result;
 }

  public Matrix  MultiplyMatrix(Matrix m2){
  if (this.getNoCols != m2.getNoRows)
      throw new IllegalArgumentException ("matrices can't be multiplied");
 int row2 = this.getNoRows();
 int col2 = m2.getNoCols();
  Matrix result = new Matrix(row2, col2);
  for (int i=0; i<row2; i++){
      for (int j=0; j<col2; j++){
             result.setValue(i,j,(this.getValue(i,j)*m2.getValue(i,j)));
     }
 }
 return result;

 }

public Matrix TransposeMatrix(){
  int row3 = this.getNoCols();
  int col3 = this.getNoRows();
  matrix result = new Matrix (row3, col3);
  for (int i=0; i<row3 ; i++){
     for (int j=0; j<col3; j++){
        result.setValue(i,j, (this.getValue(j,i)));
     }
  }
 return result;

}

  public void DisplayMatrix(){
  for (int i = 0; i < this.getNoRows; i++) {
  for (int j = 0; j < this.getNoCols; j++) {
    System.out.print((this.getValue(i,j)) + " ");
}
System.out.print("\n");
  }  
}

  public class Lab1 {
  public static void main(String args[]) {
 //      Matrix  m1 = new Matrix();
//          Matrix  m2 = new Matrix();
   //         Matrix  m3 = new Matrix();

      System.out.println("1. Add two matrices \n");
      System.out.println("2. Multiply two matrices \n");
      System.out.println("3. Take transpose of a matrix \n");
      System.out.println("4. Display a matrix \n");
      System.out.println("5. Exit \n");

      int choice;
      Scanner in = new Scanner (System.in);
      System.printout.ln("Enter your choice /n");
      choice = in.nextInt();

       Matrix m1 =  MatrixReader();
       m1.DisplayMatrix();
       Matrix m2 =  MatrixReader();
       m2.DisplayMatrix();

       if (choice==1){
       Matrix m3 = new Matrix(m1.getNoRows, m1.getNoCols);
       m3 = m1.AddMatrix(m2);
       m3.DisplayMatrix();
    }

       if (choice==2){
       Matrix m3 = new Matrix(m1.getNoRows, m2.getNoCols);
       m3 = m1.MultiplyMatrix(m2);
       m3.DisplayMatrix();
      }

    if (choice==3){
    Matrix m1 = DisplayMatrix();
    Matrix m3 = new Matrix (m1.getNoRows, m1.getNoCols);
    m3=m1.TransposeMatrix();
    m3.DisplayMatrix();
    }

    if (choice ==4){
    System.out.println("Will need to call the DisplyMatrix method for the object /n");
    }

 else {
    System.out.println("Incorrect input. Kindly enter again / n");
 }
}

public static Matrix MatrixReader() throws FileNotFoundException {
System.out.println("Give the filename for the matrix");
Scanner filescanner = new Scanner(System.in);
Scanner scanner = new Scanner(new File(filescanner.nextLine()));
scanner.nextLine(); // removes the first line in the input file
String rowLine = scanner.nextLine();
String[] arr = rowLine.split("=");
int rows = Integer.parseInt(arr[1].trim());

String colLine = scanner.nextLine();
String[] arr2 = colLine.split("=");
int cols = Integer.parseInt(arr2[1].trim());
Matrix test  = new Matrix(rows, cols);

 for (int i=0; i<rows;i++){
     for (int j=0; j<cols;j++) {
         test[i][j]= scanner.nextDouble();
        }
}

 return test;

}

}
                                                                     167,1         Bot

```