I have a matrix $M$ of real components, and I want to split it into two matrices $M^+$ and $M^-$ of the same dimensions as $M$, where $M^+$ contains the positive components of $M$ (the remaining entries being filled with zeros), and $M^-$ contains the negative components, such that $M=M^+ + M^-$.
Suppose the matrices are represented in the usual way in Mathematica (as lists of lists, or as sparse arrays)
How can I do this efficiently and elegantly in Mathematica?