data = textscan(fid,'%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f','HeaderLines',3); %'HeaderLines',3 damit Header "überlesen wird
save('data','data')
fid = fclose(fid);
Letztlich nur einen ausreichend großen Hauptspeicher, was hier wohl 12 bis 16 GB bedeuten wird, in Verbindung mit einem 64bit Betriebssystem. Andere Prozesse und MATLAB brauchen ja auch noch Speicherplatz, und du willst ja mit den Daten auch noch arbeiten.
Informationen zur Speicherbelegung bekommst du mit
Du könntest beispielsweise 400000 Zeilen am Stück einlesen, damit kommst du auf ~ 100 MB an Daten. Diese 100 MB verarbeiten, dann die nächsten, bis du am Ende der Datei angelangt bist.
ok, und macht es Sinn Spalte für Spalte einzulesen?
Wenn ja, wie müsste ich das in Matlab schreiben, um Spalte für Spalte aus dem .txt-Fle zu laden (bezogen auf den code den ich geposted hab)?
ok danke für den Tipp,
ja das habe ich mir auch gedacht, aber wenn ich das richtig verstehe, geht Matlab ja jetzt jede Spalte durch und speichert sie separat ab, sodass ich viele kleine files hab, die nicht so viel Arbeitsspeicher benötigen (zum einlesen etc.) wie eine große?
du legst die Variablen ja im Workspace ab, also wird schon der gesamte Speicher benötigt. Meine Vermutung wäre, dass es sich hier um einen Edge Case bei textscan handelt.
Was sagt denn memory, nachdem du alle Variablen angelegt hast? Ich würde vermuten, dass du dann nicht mehr viel Speicher frei hast, um tatsächlich mit den Daten zu arbeiten?
...noch sind nicht alle Spalten durchgelaufen....pro Spalte ist ein Zeitsignal enthalten welches ich jeweils einzeln verarbeite (Merkmalsdetektion), sodass sich die Signalgröße nachher reduziert auf die delektierten Zeitpunkte.
Hallo,
leider ist zu meiner vorherigen Frage noch ein Problem dazu gekommen.
Ich weiß, wie ich eine bestimmte Zeilenanzahl überspringen kann (um z.B. einen Header zu ignorieren).
Wie aber kann ich die einzulesende Zeilennanzahl begrenzen.
Also den Header überspringen und dann bis Zeile 300 jede Spalte einer txt.Datei einlesen.
Die Frage ist allerdings, ob du nicht mehr Zeilen auf einmal einlesen willst und wenn nicht, ob du nicht alle Spalten auf einmal holen könntest.
Grüße,
Harald
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
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.