'Shows location of non-zero entries for fast shape lookup.
Examples
>>> from sympy.matrices import Matrix, eye
>>> m = Matrix(2, 3, lambda i, j: i*3+j)
>>> m
Matrix([
[0, 1, 2],
[3, 4, 5]])
>>> m.print_nonzero()
[ XX]
[XXX]
>>> m = eye(4)
>>> m.print_nonzero("x")
[x   ]
[ x  ]
[  x ]
[   x]'

def print_nonzero(self, symb='X'):

    s = []
    for i in range(self.rows):
        line = []
        for j in range(self.cols):
            if (self[(i, j)] == 0):
                line.append('    ')
            else:
                line.append(str(symb))
        s.append(('[%s]' % ''.join(line)))
    print('\n'.join(s))
