MathGroup Archive 2010

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: formatted table output to ascii file


Hi,
make all you numbers precision numbers (e.g. using N) otherwise
Mathemaitca will try hard to give an exact representation. Further
the problem with the lone "e" is solved by e.g.:
Export["d:/tmp/t.txt",
  ScientificForm[TableForm[table], 4,
   NumberFormat -> (Row[If[#3 == "", {#1}, {#1, "e", #3}]] &)],
  "String"];
cheers Daniel


-----Urspr=FCngliche Nachricht-----
Von: Bence Kocsis [mailto:bkocsis at gmail.com]
Gesendet: Mi 16.06.2010 00:47
An: Huber, Daniel
Betreff: Re: formatted table output to ascii file


Neither of these solutions work for a table with small numbers like
10^-7.
For example, consider

table = {{10^-6, 0.0000243729, 0.0000759669, 0.00187499}, {-2.,
   0.0613641, 0.0827868, 0.0831174}, {0.4, 0.317162, 0.307924,
   0.33977}}

Then the kuh functions give a file with:

    1.0000
-------------
 1000000.0000  2.437e-05  7.597e-05  1.875e-03
-2.0000  6.136e-02  8.279e-02  8.312e-02
 0.4000  3.172e-01  3.079e-01  3.398e-01

while that of dh has the same same problem but it also screws up the
-2.0 element:

   1e
--------
1000000e   2.437e-5   7.597e-5   1.875e-3

-2.e       6.136e-2   8.279e-2   8.312e-2

4.e-1      3.172e-1   3.079e-1   3.398e-1

Any solution in this case?

On Mar 18 2009, 5:51 am, dh <d... at metrohm.com> wrote:
> Hi,
>
> try e.g. ScvientificForm with Table:
>
> Export["d:/tmp/t.txt",
>
>   ScientificForm[TableForm[d], 4,
>
>    NumberFormat -> (Row[{#1, "e", #3}] &)], "String" ]
>
> hope this helps, Daniel
>
> kuh... at gmail.com wrote:
> > For the life of me I just cannot figure out how to get Mathematica =
to
> > produce nicely formatted (C or Fortran format) output of a 2D table =
of
> > numbers to an ASCII file.
>
> > Let's say I've got this table:
>
> > {{-6., 0.0000243729, 0.0000759669, 0.00187499},
> >  {-2., 0.0613641, 0.0827868, 0.0831174},
> >  {0.4, 0.317162, 0.307924, 0.33977}}
>
> > I'd like the resulting file to correspond to this C format string
> > "%5.2f %10.3e %10.3e %10.3e\n", i.e. to look like this:
>
> > -6.00  2.437e-05  7.597e-05  1.875e-03
> > -2.00  6.136e-02  8.279e-02  8.312e-02
> >  0.40  3.172e-01  3.079e-01  3.398e-02
>
> > I tried Export["file.dat",table], but got this mess:
>
> > -6.     0.00002437286669095962  0.0000759669270937278
> > 0.0018749887943499436
> > -1.9999999999999998     0.06136412066687522
> > 0.08278680554897219     0.08311737741506361
> > 0.40000000000000036     0.31716209930168276
> > 0.3079237859649251      0.3397696229714295
>
> > I also tried pre-formatting with something like
>
> > newdata = Map[ToString[PaddedForm[#, {6, 4}]] &, table, {2}];
>
> > but my mathematica-fu isn't good enough to generalize this to the
> > desired format.
>
> > Any help would be greatly appreciated!
>
> > mike






  • Prev by Date: Re: Can you tell me what is wrong with this program
  • Next by Date: Re: Difficulty with saving Package .m files
  • Previous by thread: Re: Java heap space on Mac OS X not supported?
  • Next by thread: possible bug with fraction box shortcut ctrl+/