code: public ZMatrixRMaj readZDRM(int numRows, int numCols) throws IOException {
  
          ZMatrixRMaj A = new ZMatrixRMaj(numRows,numCols);
  
          int wordsCol = numCols*2;
  
          for( int i = 0; i < numRows; i++ ) {
              List<String> words = extractWords();
              if( words == null )
                  throw new IOException("Too few rows found. expected "+numRows+" actual "+i);
  
              if( words.size() != wordsCol )
                  throw new IOException("Unexpected number of words in column. Found "+words.size()+" expected "+wordsCol);
              for( int j = 0; j < wordsCol; j += 2 ) {
  
                  double real = Double.parseDouble(words.get(j));
                  double imaginary = Double.parseDouble(words.get(j+1));
  
                  A.set(i, j, real, imaginary);
              }
          }
  
          return A;
      }
docs: Reads in a {@link ZMatrixRMaj} from the IO stream where the user specifies the matrix dimensions.
  
  @param numRows Number of rows in the matrix
  @param numCols Number of columns in the matrix
  @return ZMatrixRMaj
  @throws IOException