DMUG-Archiv 2001

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

Re: Lesen binärer Zahlen

Hallo,

in Ermangelung der sicher sehr sch"one FORTRAN Dateien nur ein paar
Tips ohne Garantie

a) also Single ist ja wohl Real*4, also vier Bytes, wieso
   also erstmal am Anfang 4 Bytes und am Ende 4 Bytes gelesen werden
   anstatt einer anfangs und am Ende eine 
   32 Bit integer b.z.w. einer weiteren Single ist unklar.
   
b) Wenn man eh bloss Single Zahlen einlesen will, diese in Listen der
L"ange
   22 Teilt, und jeweils nur die mittleren zwanzig nimmt, sollte es ein

   Take[#,{2,21}] & /@
Partition[Experimental`ImportBinary[channel,{"Real32"..}],22]

   wohl auch tun.

c) man k"onnte ja auch ein MathLink-Programm schreiben, das die Daten
   liest

Gruss
  Jens

Martin Heimann wrote:
> 
> Liebe Kollegen,
> 
> ich versuche mit den Funktionen im Package  Utilities`BinaryFiles`
> von einem Fortran90-Programm geschrieben reelle Zahlen zu lesen (ein
> Vektor von 20 single-float reals pro binären Fortran-Record). Wegen
> den Fortran-Recordseparatoren muss man diese  beim Lesen rausfischen,
> daher die etwas umständliche Konstruktion (die Funktion "Cols[z_,i]"
> extrahiert die i-te Spalte aus dem Array z):
> 
> << Utilities`BinaryFiles`
> 
> readbin[zfile_] :=
>    Cols[ReadListBinary[
>        zfile, {Table[Byte, {4}], Table[Single, {20}], Table[Byte, {4}]}], 2]
> 
> Diese Funktion liest die Daten richtig. Aber warum ist sie so
> langsam? Ich war immer der Meinung, dass Zahlen in binärer Form
> eigentlich schneller als in formattierter Form gelesen werden können?
> Gibt es eine Möglichkeit, dies zu beschleunigen?
> 
> Mit freundlichem Gruss,
> Martin Heimann
> 
> --
> Max-Planck-Institut fuer Biogeochemie
> Postfach 100164, D-07701 Jena, Germany
> Street Address: Kahlaische Strasse 10
> 
> Office: +49-3641-686-720/701
> Mobile: +49-170-6307299
> Home:   +49-3641-618254
> Fax.:   +49-3641-686-710
> Email:  martin.heimann@XXXXXXX.de
> Web:    http://www.bgc-jena.mpg.de/~martin.heimann


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

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