|
>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 |