>Warum funktioniert die folgende Funktion nicht; resp. warum schreibt diese
>Funktion die Matrix nicht in FortranForm raus, obwohl der Outputstream doch
>so eroeffnet wurde? Ich benutze MMA 3.0 auf einem Macintosh.
Keine Ahnung. Ist vielleicht ein Fehler im System.
Hier eine andere (zugegebenermassen etwas wilde) Lösung:
In[1]:= WriteFMatrix[fil_, mat_?MatrixQ] := Block[{f, str, m},
f = ToString[fil]; OpenWrite[f]; m =
StringReplace[(ToString[#1,
FormatType -> FortranForm] & ) /@ mat, {"List(" -> "",
")" -> "\n", "," -> "\t"}]; WriteString @@ Prepend[m,
f];Close[f]];
In[2]:= t=Table[10^7 Random[],{3},{3}];
In[3]:= WriteFMatrix["test.f", t]
Out[3]= test.f
In[4]:= !!test.f
9.97228906745593e6 3.437648172444403e6 9.13838813550153e6
662287.6950575088 152648.1282839845 2.167733360706393e6
9.98537133962117e6 2.306203902786334e6 8.36487789058936e6
MfG,
Rolf
--
Dr. Rolf Mertig
Mertig Research & Consulting
Mathematica training and programming
Development and distribution of FeynCalc
Amsterdam, The Netherlands
http://www.mertig.com
|