# 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->{"-","+"}]? – andre Apr 9 '13 at 16:00 @ andre Thanks A LOT !!! It works perfectly now! – Rod Apr 9 '13 at 16:02 @ andre please put it as an answer format, so I can accept your answer... – Rod Apr 9 '13 at 16:09 ## 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 Apr 9 '13 at 14:47 what's wrong with the output of the above, either Table or Map? – bill s Apr 9 '13 at 14:50 You've generated numbers with 2 decimal places... try something with $MachinePrecision... – Rod Apr 9 '13 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. – bill s Apr 9 '13 at 14:54
Ok, but the problem is: I'm already using mat[[1 ;; 500, All]] inside a DynamicModule environment... so, I can't use Table[mat[[i,j]],{i,1,4},{j,1,4}]... – Rod Apr 9 '13 at 15:06