public void printMatrix() {

        // Column attributes stuff
        System.out.println(columnAttributes);
        System.out.println();

        // Column names
        for (int i = 0; i < getNumCols(); i++) {
            System.out.printf("%15s", columnAttributes.get(i).getName());
        }
        System.out.println();

        // Data
        for (int i = 0; i < getNumRows(); i++) {
            List<Double> row = getRow(i);
            for (int j = 0; j < getNumCols(); j++) {
                System.out.printf("%15s ", row.get(j));
            }
            System.out.println();
        }
    }