|
|
|
Effektives Speichern/ Matfile Obj. |
|
| mutiny |

Forum-Newbie
|
 |
Beiträge: 3
|
 |
|
 |
Anmeldedatum: 11.06.12
|
 |
|
 |
Wohnort: Aachen
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 18.06.2012, 17:58
Titel: Effektives Speichern/ Matfile Obj.
|
 |
Hallo,
kennt sich jemand mit effektivem speichern von Daten aus? Ich habe 4 Vektoren, die 10kSamples/s aufgenommen werden und alle 5 Sekunden abgespeichert werden. Das mache ich im Moment noch mit einem Matfile Objekt (s.u.). Nach 20 Minuten ist die Datei schon 50Gb(!!!!!) groß. Da kommt selbst mein neuer Rechner ins Stocken. Weiß jemand was da schief läuft?
Besten Gruß
|
|
|
|
|
|
| flashpixx |

Forum-Guru
|
 |
Beiträge: 355
|
 |
|
 |
Anmeldedatum: 19.04.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 18.06.2012, 18:36
Titel:
|
 |
Nimm eine Datenbank, in die Du die Werte ablegst. Datenbanken sind dafür gemacht große Mengen an Daten aufzunehmen evtl bietet sich auch HDF dafür an.
Es ist die Frage ob Matlab ggf von Deinen Daten eine History mitpflegt, so dass eben der Datenstand größer wird. Die Berechnung scheint aber auch irgendwie seltsam zu sein, denn Dein samplefield ist eine Konstante, d.h. Du läufst von 1 bis samplefield und ich tippe mal darauf, dass k eine Laufvariable ist, somit würde der erste Lauf von 1 bis samplefield gehen, der zweite von samplefield+1 bis 2*samplefield
Also wäre der Index 1+(k-1)*samplefield:k*samplefield, d.h. Dein Feld wird immer um samplefield Elemente größer. Wenn Samplefield 10k Element sind, dann wird es bei jeder Iteration um 10k Elemente größer
|
|
|
|
| mutiny |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 3
|
 |
|
 |
Anmeldedatum: 11.06.12
|
 |
|
 |
Wohnort: Aachen
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 19.06.2012, 09:04
Titel:
|
 |
Hallo flashpixx,
ist sicherlich schöner und effektiver.
Der Vektor wird sicherlich jeden durchlauf um 5*Samplerate=50000 Samples (dies entspricht dem Samplefield) größer aber muss das nicht so sein?!
|
|
|
|
| flashpixx |

Forum-Guru
|
 |
Beiträge: 355
|
 |
|
 |
Anmeldedatum: 19.04.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 19.06.2012, 10:42
Titel:
|
 |
| mutiny hat Folgendes geschrieben: |
Der Vektor wird sicherlich jeden durchlauf um 5*Samplerate=50000 Samples (dies entspricht dem Samplefield) größer aber muss das nicht so sein?! |
Kann ich Dir nicht sagen, weil das auf Deine Daten ankommt
Ich würde ja eher so was machen (Pseudocode)
Wenn die Chunks / Blöcke, die Du liest immer gleich groß sind, kann man das natürlich aus der Schleife raus nehmen. Ein double ist 8 Byte groß ( http://de.wikipedia.org/wiki/Doppelte_Genauigkeit ), eine normale Zahlenvariable in Matlab ist ein double, somit kannst Du Dir ausrechnen, wie viel Speicherplatz Deine Daten brauchen. Das Speichern in der Datei wird auch noch etwas Overhead mitbringen, aber der ist minimal.
Zusätzlich solltest Du bedenken, dass 0 auch eine Zahl ist, wenn in Deinen Daten, weil Du die Chunks falsch berechnest bzw. von sich aus viele Nullelemente enthalten sind, kann es anbieten eine sparse Struktur zu verwenden.
|
|
|
|
|
|
|
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.
|
|