Re: Formatted output
- To: mathgroup at smc.vnet.net
- Subject: [mg39258] Re: [mg39244] Formatted output
- From: Tomas Garza <tgarza01 at prodigy.net.mx>
- Date: Thu, 6 Feb 2003 03:08:03 -0500 (EST)
- References: <200302050511.AAA03175@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Actually, you may format your output to any extent of embellishment desired. Suppose, e.g., you have the following table as the result of your calculations: In[1]:= result = Table[Random[Real, {0, 10000}], {10}, {7}]; The display (omitted here) shows a variety of numbers, with one, two, three or four integers, and ditto for decimals. You might simply take In[2]:= TableForm[result] and obtain a table with constant-width columns and numbers right-aligned. However, this is not too nice, since numbers with one integer take the same space as numbers with four integers. So you might want to go much further and format your numbers so that, for example, only two decimals are shown, and integral parts are separated with commas in groups of three, say. To start with, then, define a function, say imp, which will preserve only two decimals and perform the grouping, separating with commas in groups of three: In[3]:= imp[x_] := NumberForm[x, {12, 2}, NumberPadding -> {"", "0"}, DigitBlock -> 3, ExponentFunction -> (Null & )]; and apply it to your result In[4]:= c = Map[imp, result, {2}] Then the following will produce a very nice table In[5]:= DisplayForm[StyleBox[GridBox[c, GridFrame -> 2, RowLines -> True, ColumnLines -> True, ColumnAlignments -> {Right}]]] You may change the font, add column headings or row titles, or whatever other features you wish. Of course, you may have to spend a few hours understanding what is going on (as I had to do at one time or another), but I think it will be worth your effort. Tomas Garza Mexico City ----- Original Message ----- From: "Steve Gray" <stevebg at adelphia.net> To: mathgroup at smc.vnet.net Subject: [mg39258] [mg39244] Formatted output > Hello all, > > I want to produce a table of text output (in the same notebook > my code is in). The output consists of many rows of numbers, each row > containing the same number of numbers. For example the entire output > might consist of 500 rows each having 7 columns. It is important for > understanding the output to have well-formatted columns of a constant > width regardless of the number of digits in each number (which will be > no more than say 9). In the columns the numbers should be > right-aligned. > "Print" does not seem to have enough control to do this. It's > much less flexible than the print statement in C. What I need is > something like that. I've been reading the book, sections 2.7, 2.8, > etc., and it looks like I will have to write an actual (small) program > to do this. > I'd appreciate any suggestions or leads to a package where all > this is already done. > Many thanks. > > Steve Gray > > >
- References:
- Formatted output
- From: Steve Gray <stevebg@adelphia.net>
- Formatted output