|
|
|
Binär-Datei als Logical-Matrix einlesen |
|
| Ajax |

Forum-Century
|
 |
Beiträge: 176
|
 |
|
 |
Anmeldedatum: 09.09.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 08.12.2011, 13:00
Titel: Binär-Datei als Logical-Matrix einlesen
|
 |
| |
 |
|
Hallo zusammen,
ich stehe mal wieder vor einem Problem:
Ich habe eine mitunter sehr große Datei, in welcher Datenpackete in binärem Format gespeichert sind. Jedes Datenpacket hat eine Länge von 48 bit und es können sehr viele Millionen solcher Packete vorliegen. Der Zugriff muss auf die einzelnen bits möglich sein. Daher habe ich die Datei wie folgt eingelesen anschließend mit logical() umgewandelt:
Wenn ich es richtig verstehe, dann liest Matlab die Datei auf diesem Weg bitweise ein und jedes bit wird zuerst als double abgespeichert. Erst im Anschluss erfolgt die Umwandlung in das deutlich weniger speicherintensive logical Format. Daher kann ich so nur relativ kleine Dateien einlesen, da ansonsten sehr schnell mein Arbeitsspeicher voll ist.
Wenn ich das ganze als Schleife aufbaue und nur kleine Abschnitte einlese, umwandle und speichere, dann kann die Datei zwar größer sein, das einlesen braucht aber extrem lange.
Lese ich als 'ubit48' ein und wandle z.B. mit dec2bin() in einen binär-String um, dann habe ich erstens Strings, was ich aufgrund der weiteren Verarbeitung umgehen will und zweitens dauert das umwandeln ebenfalls sehr lange.
Daher hier meine Frage: gibt es eine Möglichkeit eine binäre Datei direkt als logical einzulesen, ohne den Umweg 'ubit1' einlesen und in logical umwandeln gehen zu müssen? Oder hat jemand eine bessere Idee, wie ich solche extrem großen Dateien mit Rohdaten verarbeiten kann?
Vielen Dank für schon einmal im voraus für alle hilfreichen Kommentare.
mfg
Ajax
|
|
|
|
|
|
| denny |

Supporter
|
 |
Beiträge: 3.853
|
 |
|
 |
Anmeldedatum: 14.02.08
|
 |
|
 |
Wohnort: Ulm
|
 |
|
 |
Version: R2012b
|
 |
|
|
 |
|
Verfasst am: 08.12.2011, 13:09
Titel:
|
 |
Hallo
du kannst ja die Werte in UINT8 einlesen ist genau so groß wie LOGIC
und danach konvertieren
so:
|
|
|
|
| Ajax |
Themenstarter

Forum-Century
|
 |
Beiträge: 176
|
 |
|
 |
Anmeldedatum: 09.09.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 08.12.2011, 13:16
Titel:
|
 |
Hallo denny,
vielen Dank für die schnelle Antwort. Das hört sich auf jeden Fall sinnvoll an und ich werde es sofort mal ausprobieren.
mfg
Ajax
|
|
|
|
Verschoben: 09.12.2011, 11:22 Uhr von denny Von Matlab intern nach Programmierung |
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2025
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|