# Output format in MatrixForm

I have a correlation matrix, which I want to display in the following format:

• 2 decimal places (e.g., -0.56)
• number signs "+" and "-" (e.g., +0.76 or -0.34)

I've tried many different things, but I had no success so far... The code I'm using to generate the data is:

randomWalk[x_] := Accumulate[Prepend[RandomVariate[NormalDistribution[0, 1], x], 0]]
exchange = Table[Subscript[asset, i] = randomWalk[500], {i, 1, 5}];


Now the code I'm using to generate the correlation matrix:

N[Correlation[Transpose[exchange][[1 ;; 500, All]]], 2]//MatrixForm


However, the numbers generated are displayed with $MachinePrecision, and not 2 decimal places (although I've used N[#,2]). I've tried another code: MatrixForm[Round[Correlation[Transpose[exchange][[1 ;; 500, All]]], 0.01]]  In this case I get the correlation matrix with 2 decimal places, but it's still missing the "+" signal before the number. So I've tried this last code: NumberForm[Round[Correlation[Transpose[exchange][[1 ;; 500, All]]], 0.01],NumberSigns -> {"-", "+"}]//MatrixForm  In this last case I get the numbers correctly formatted, but I'm not able to put them in MatrixForm. Can someone give me a hint to solve this? • Why not NumberForm[MatrixForm[Round[...,NumbersSigns->{"-","+"}]? Commented Apr 9, 2013 at 16:00 • @ andre Thanks A LOT !!! It works perfectly now! – Rod Commented Apr 9, 2013 at 16:02 ## 2 Answers It is perfectly possible to wrap NumberForm around MatrixForm : NumberForm[MatrixForm[Round[...,NumbersSigns->{"-","+"}] does the job Of course there are many ways of doing this. Here's one: mat = RandomReal[{-1, 1}, {4, 4}] Table[NumberForm[mat[[i, j]], {3, 2}, NumberSigns -> {"-", "+"}], {i, 1, 4}, {j, 1, 4}] // MatrixForm  You get: • Imagine you have mat defined... try to use: NumberForm[mat, NumberSigns -> {"-", "+"}] // TableForm. It doesn't work... – Rod Commented Apr 9, 2013 at 14:47 • what's wrong with the output of the above, either Table or Map? Commented Apr 9, 2013 at 14:50 • You've generated numbers with 2 decimal places... try something with $MachinePrecision...
– Rod
Commented Apr 9, 2013 at 14:52
• mat has full real precision, it's the argument {3,2} that does the truncating to 3 significant digits plus two to the right of the decimal place. Commented Apr 9, 2013 at 14:54
• @RodLm What would be the problem there? You understand bill's matrix is just an example, right? We wouldn't like to display a 500x5 matrix here just to be closer to your matrix Commented Apr 9, 2013 at 15:37