DMUG-Archiv 2000

Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

Re: Export-Funktion

Martin Heimann wrote:
> 
> Liebe Kollegen,
> 
> Herzlichen Dank für Ihre Hinweise, aber leider ist keine der
> vorgeschlagenen Lösungen befriedigend. Robert Novaks Vorschlag
> schreibt die Klammern mit raus, und Rolf Mertigs ExportTable Funktion
> versagt bei absolut grossen oder kleinen Zahlen (d.h. wenn
> Exponentialschreibweise notwendig ist).
Entschuldigung (Ich war mir zwar der Beschraenkung bewusst dachte
aber dass das nicht so relevant waere ...).

In[1]:= !!ExportTable.m
ExportTable[f_String, expr_List, (m_Integer)?Positive, 
            opts___?OptionQ] := Module[{ms}, 
ms[x_Real, (n_Integer)?Positive] := 
   Block[{e = MantissaExponent[x], s}, 
     s = ToString[Round[e[[1]]*10^n]/10.^n] /. "0" :> "0.";
      If[x > 0, " ", ""] <>
       (StringJoin@@(Characters[
        s] //. {a__, ".", b___ /; Length[{b}] < n} :> {a, ".", b, 
         "0"})) <> If[e[[2]] === 0, "", "e" <> ToString[e[[2]]]]];
           Export[f, expr /. r_Real :> ms[r, m], "Table", opts] ]; 

In[1]:= <<ExportTable.m

In[2]:= zz = Table[Random[Real,{-1.,1.}] 10^ Random[Real, {-10, 10}],
{5}, {3}];

In[3]:= ExportTable["tabelle2.d", zz, 6];

In[4]:= !!tabelle2.d
 0.180763e4    -0.232706e-4   -0.372980e2
-0.696367e-5   -0.347001e4     0.135933e-4
-0.494063e1     0.104061e-5   -0.404817e1
-0.205839e8    -0.644104e4    -0.273850e1
 0.413203e-9    0.974290e-5    0.342076e-1


> 
> Die Mma-Export-Funktion schreibt die Tabelle in einem aus der Sicht
> anderer Programmsprachen (z.B. Fortran) "vernünftigen" Format raus,
> das aber leider nicht direkt kontrolliert werden kann.
> 
> Das folgende Beispiel verdeutlicht dies:
> zz = Table[Random[Real,{-1.,1.}] 10^ Random[Real, {-10, 10}], {5}, {3}];
> 
> Export["tabelle2.d",zz,"Table"]
> 
> tabelle2.d sieht dann so aus:
> 
> 1.7922886998960862e8     532568.1077221702         0.000013902832657017981
> -5440.282525654147       5.949993190943138e6       -0.0024869193757143396
> -8.895087670961758e6     3.326969152377752e7       -0.0026856809953407705
> 7.451857355434977e-8     0.000018547624010250553   -0.000033925746643454486
> -0.0002609386398260741   -0.03896911499944081      -4.541679105326757e-10
> 
> An  sich war die Einführung der Export Funktion in Mathematica 4.0
> ein grosser Fortschritt. Aber etwas  Kontrolle über den Output wäre
> schon erfreulich.  Nicht immer ist die volle Präzision notwendig; in
> wissenschaftlichen Publikationen sind grundsätzlich nur die
> "signifikanten" Stellen anzugeben.
> 
> Es ist mir ein Rätsel, warum Mathematica diese elementare
> Schnittstelle zu anderen Programmen/Programmiersprachen lange Zeit
> derart vernachlässigt hat. Ich benutze Mathematica seit Version 1 und
> habe mich schon oft über diese Schwäche geärgert. Offenbar geht WRI
> davon aus, dass Mathematica das Endprogramm ist, in welchem ein
> Problem vollständig (Analyse, Tabellen, Graphik, Dokumentation,
> Publikation) gelöst werden soll. Meine Erfahrung ist jedoch, dass es
> immer wieder Anwendungen gibt, in welchen einer oder mehrere dieser
> Schritte in anderen Softwareprodukten effizienter und oft einfacher
> gelöst werden können.

Tja. Das wurde leider lange vernachlaessigt. Zum Glueck gibt es ja
jetzt J/Link. 
Und ansonsten gilt: Mathematica ist ja genau deswegen so gut weil man
eben
ziemlich schnell das programmieren kann was man gerade braucht (bzw.
auch viele
bugs und so umgehen kann oder ausbessern).
Und die Leute in Champaign/Illinoies (in the middle of nowhere) benutzen
die Export Funktion wahrscheinlich selber kaum ...

Es bleibt jedem Benuzter im uebrigen freigestellt emails an
support@XXXXXXX.com
und suggestions@XXXXXXX.com zu schreiben. Und wer weiss, vielleicht
haben 
100 emails zu Export oder irgendeiner anderen Funktion oder Dummheit in
Mathematica
im Laufe der Zeit doch irgendeinen Einfluss ... (zumindestens 4 Jahre
spaeter).

MfG,

Rolf Mertig


Verweise:
Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

DMUG DMUG-Archiv, http://www.mathematica.ch/archiv.html