• for each vector class, there is a corresponding matrix class

  • matrix is constructed based on the vector class, its data member include a list of row vector pointers and the number of row vectors

  • commonly used matrix operations like multiplication, transpose, inversion, etc. are implemented

  • the I/O methods allow a matrix object to read or write itself