       Re: silly question on formatting tables

• To: mathgroup at smc.vnet.net
• Subject: [mg129099] Re: silly question on formatting tables
• From: Bill Rowe <readnews at sbcglobal.net>
• Date: Sat, 15 Dec 2012 05:49:18 -0500 (EST)
• Delivered-to: l-mathgroup@mail-archive0.wolfram.com
• Delivered-to: l-mathgroup@wolfram.com
• Delivered-to: mathgroup-newout@smc.vnet.net
• Delivered-to: mathgroup-newsend@smc.vnet.net

```On 12/14/12 at 3:01 AM, alba.maydeu at gmail.com wrote:

>Consider the matrix

>{{0, 0, 1.19092}, {0.883038, 0, 0.366804}, {0, 0, 0}}

>How can I display it in matrixform/tableform so that the integers
>are displayed as integers and the reals are displayed only with 2
>decimals?

>If I use MatrixForm, the reals are displayed with 6 decimals, and if
>I use TableForm all numbers, including integers are displayed with 2
>decimals.

Here are two ways to achieve what you want. First:

In:= m = {{0, 0, 1.19092}, {0.883038, 0, 0.366804}, {0, 0, 0}};
m /. a_Real :> NumberForm[a, {3, 2}] // MatrixForm

But notice

In:= Union@Flatten@Map[Head, %, {2}]

Out= {Integer,NumberForm}

That is, NumberForm is a wrapper for the reals which means you
cannot simply use the end result in further computation. So,

({{0, 0, 1.19092}, {0.883038, 0, 0.366804}, {0, 0, 0}} /.
a_Real :> NumberForm[a, {3, 2}]) + {{0, 0, 1}, {1, 0, 2},
{0, 0,
0}}

likely has an output you wouldn't want. You can "fix" this by doing:

{{0, 0, 1.19092}, {0.883038, 0, 0.366804}, {0, 0, 0}} /.
a_Real :> Round[a, .01]

But this changes the values of the real elements which may not
be something you want. Of course by assigning the matrix to a
variable then applying NumberForm etc. you can control the
display and still have the matrix unchanged for further computation.

```

• Prev by Date: how to define step size in FindMinimum
• Next by Date: Re: Mathematica 9 does not read mathematica 8 ".mx" files
• Previous by thread: Re: silly question on formatting tables
• Next by thread: Re: silly question on formatting tables