Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

public class Matrix { private int[][] matrix; /** * default constructor -- * Cre

ID: 3884445 • Letter: P

Question

public class Matrix {

private int[][] matrix;

/**
* default constructor --
* Creates an matrix that has 2 rows and 2 columns
*/
public Matrix(int [][] m)
{
  
  boolean valid = true;
  for(int r = 1; r < m.length && valid; r++)
  {
   if(m[r].length != m[0].length)
    valid = false;
  }
  if(valid)
   matrix = m;
  else
   matrix = null;

}

public String toString()
{
String str = "";
for (int i = 0 ; i<matrix.length; i ++ ){
for (int j = 0 ; j < matrix.length ; j++){
str += matrix[i][j]+" ";
}
str += " ";
}
return str;
}

public Matrix add(Matrix om)
{
  Matrix newMatrix = null;
  if(om.matrix[0].length == this.matrix[0].length)
    {
     newMatrix = new Matrix(new int[matrix.length][matrix.length]);
     for (int i = 0; i < om.matrix[0].length; i++)
               for (int j = 0; j < om.matrix[0].length; j++)
               newMatrix.matrix[i][j] = om.matrix[i][j] + this.matrix[i][j];
          
    }
  return newMatrix;

}
public Matrix sub(Matrix om) {
  {
   Matrix newMatrix = null;
   if(om.matrix[0].length == this.matrix[0].length)
     {
      newMatrix.matrix = new int[matrix.length][matrix.length];
      for (int i = 0; i < om.matrix[0].length; i++)
                for (int j = 0; j < om.matrix[0].length; j++)
                newMatrix.matrix[i][j] = om.matrix[i][j] - this.matrix[i][j];
           
     }
   return newMatrix;

  }
}
public Matrix multi(Matrix om) {
  return null;
}
public Matrix scalar(Matrix om) {
  return null;
}
public boolean equal(Matrix om) {
  return false;
}
public Matrix transpose(Matrix om) {
  return null;
}

//sub, multi, scalar, equal, transpose methods need editing but not sure how to fix

Explanation / Answer

// I have added code for default constructor, equal and transpose function and checked if your add and sub are correct
public class Matrix {

private int[][] matrix;

/**
* default constructor --
* Creates an matrix that has 2 rows and 2 columns
*/

public Matrix()
{
     matrix = new int[2][2];    // matrix of 2 rows and 2 columns
}
public Matrix(int [][] m)
{

boolean valid = true;
for(int r = 1; r < m.length && valid; r++)
{
   if(m[r].length != m[0].length)
    valid = false;
}
if(valid)
   matrix = m;
else
   matrix = null;

}

public String toString()
{
String str = "";
for (int i = 0 ; i<matrix.length; i ++ ){
for (int j = 0 ; j < matrix.length ; j++){
str += matrix[i][j]+" ";
}
str += " ";
}
return str;
}

public Matrix add(Matrix om)
{
Matrix newMatrix = null;
if(om.matrix[0].length == this.matrix[0].length)
    {
     newMatrix = new Matrix(new int[matrix.length][matrix.length]);
     for (int i = 0; i < om.matrix[0].length; i++)
               for (int j = 0; j < om.matrix[0].length; j++)
                newMatrix.matrix[i][j] = om.matrix[i][j] + this.matrix[i][j];
        
    }
return newMatrix;

}
public Matrix sub(Matrix om) {
{
   Matrix newMatrix = null;
   if(om.matrix[0].length == this.matrix[0].length)
     {
      newMatrix.matrix = new int[matrix.length][matrix.length];
      for (int i = 0; i < om.matrix[0].length; i++)
                for (int j = 0; j < om.matrix[0].length; j++)
                 newMatrix.matrix[i][j] = om.matrix[i][j] - this.matrix[i][j];
         
     }
   return newMatrix;

}
}
public Matrix multi(Matrix om) {
return null;
}
public Matrix scalar(Matrix om) {
   
return null;
}
public boolean equal(Matrix om) {
   
    for (int i = 0; i < om.matrix.length; i++)
          for (int j = 0; j < om.matrix[0].length; j++)
              if(om.matrix[i][j]!=this.matrix[i][j])
              return false;
    return true;
}
public Matrix transpose(Matrix om) {
   
     Matrix newMatrix = null;
     newMatrix.matrix = new int[om.matrix[0].length][om.matrix.length];
      for (int i = 0; i < om.matrix.length; i++)
                for (int j = 0; j < om.matrix[0].length; j++)
                    newMatrix.matrix[j][i] = om.matrix[i][j];
return newMatrix;
}
}