Binärfiles für Matlab



  • Hallo!

    Ich habe ein Programm geschrieben, dass umfangreich Daten exportiert.
    Diese werden aktuell wie folgt als .txt gespeichert:
    [Wert 1] \t [Wert 2]
    1342444 1.425232
    1342445 1.8454252
    etc...

    Man kann sich vorstellen das dieser File sehr groß wird, wenn hier einige Tausend Zeilen generiert werden.

    Wie könnte ich das ganze besser speichern, so das es kleiner wird, aber Matlab es dennoch einfach einlesen kann?

    Gruß
    Chris




  • Mod

    cl90 schrieb:

    Man kann sich vorstellen das dieser File sehr groß wird, wenn hier einige Tausend Zeilen generiert werden.

    Du meinst so einige zehntausend Kilobyte? Uiuiui, dann geh lieber schnell eine zweite Diskette kaufen! Ich höre, diese neuartigen 3.5 Zoll Disketten können sogar 360 Kilobytes speichern. Unvorstellbar! Wer soll jemals so viel Platz brauchen?

    Wie könnte ich das ganze besser speichern, so das es kleiner wird, aber Matlab es dennoch einfach einlesen kann?

    Die Frage ist eher, wie du das in Matlab wieder einlesen kannst. Da Matlabs fread aber so ziemlich auf jedes je erfundene Zahlenformat vorbereitet ist, kannst du einfach nach Lust und Laune deine Zahlen mit write raus schreiben. Das kann ziemlich viel Platz sparen*. Du musst dir bloß merken, wie groß und von welcher Art der Datentyp ist, den die Zahlen in deinem C++-Programm haben. Und falls die Architektur des Schreibrechners eine andere ist als die des Leserechners, dann musst du auch die Endianess beachten. Aber das ist alles bei Matlab dokumentiert.

    *: Oder auch so gut wie gar nichts, falls deine Zahlen im Schnitt eine sehr kurze Dezimaldarstellung haben.



  • SeppJ schrieb:

    cl90 schrieb:

    Man kann sich vorstellen das dieser File sehr groß wird, wenn hier einige Tausend Zeilen generiert werden.

    Du meinst so einige zehntausend Kilobyte? Uiuiui, dann geh lieber schnell eine zweite Diskette kaufen! Ich höre, diese neuartigen 3.5 Zoll Disketten können sogar 360 Kilobytes speichern. Unvorstellbar! Wer soll jemals so viel Platz brauche.

    Naja ich rede eigentlich von hunderten Gigabyte großen Textdateien 🙄
    Ich splitte die schon in nutzbare Größen. dennoch wäre es Binär vermutlich halb oder 1 drittel so viel...

    Aber danke für die Links, die waren brauchbar 🙂


  • Mod

    cl90 schrieb:

    Naja ich rede eigentlich von hunderten Gigabyte großen Textdateien 🙄

    Dann sag nicht Tausende, wo du Milliarden meinst. Je exakter du deine Probleme darstellst, desto besser kann man dir auch helfen. Beispielsweise kann man in Matlab auch aus Pipes lesen, was für Tausende von Zeilen eher nicht die beste Methode ist, aber wenn man extrem große Datenmengen hat, ist das eine hervorragende Methode, da man sie nicht zwischenspeichern braucht.



  • SeppJ schrieb:

    cl90 schrieb:

    Naja ich rede eigentlich von hunderten Gigabyte großen Textdateien 🙄

    Dann sag nicht Tausende, wo du Milliarden meinst.

    Siehst? Ich habs doch gerochen 😉


Anmelden zum Antworten