Datum bzw. Uhrzeit einlesen
Plotter
Forum-Fortgeschrittener
Beiträge: 51
Anmeldedatum: 26.05.10
Wohnort: ---
Version: ---
Verfasst am : 31.05.2010, 10:59
Titel : Datum bzw. Uhrzeit einlesen
Hallo schon wieder!
Ich hab Suche zu benutzt, aber nix fundiges gefunden.
Ich möchte Datum (JJJ-MM-TT) bzw. Zeit (HH:MM:SS) als Vektor aus asc.Datei auslesen, klappt es aber nicht.
Das soll der Anfang sein:
fid = fopen ('test.asc');
C = textscan (fid,'%s','delimiter',',')
fclose(fid);
und wie soll es weiter gehen, wenn Datum in 1. Spalte bzw. Zeit in 2. Spalte ist
Fourier
Forum-Guru
Beiträge: 329
Anmeldedatum: 05.04.10
Wohnort: Karlsruhe
Version: 2009b
Verfasst am : 31.05.2010, 11:12
Titel :
hallo,
sollte klappen
Gruss
Plotter
Themenstarter
Forum-Fortgeschrittener
Beiträge: 51
Anmeldedatum: 26.05.10
Wohnort: ---
Version: ---
Verfasst am : 31.05.2010, 12:05
Titel :
ne, es finzt nicht, bekkome eine Meldug
Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space
und Programm bleibt hängen
quant82
Forum-Fortgeschrittener
Beiträge: 97
Anmeldedatum: 30.04.10
Wohnort: ---
Version: ---
Verfasst am : 31.05.2010, 12:08
Titel :
wie groß ist denn deine input file und könntest du mal ein stück davon posten
Fourier
Forum-Guru
Beiträge: 329
Anmeldedatum: 05.04.10
Wohnort: Karlsruhe
Version: 2009b
Verfasst am : 31.05.2010, 12:34
Titel :
am besten die ganze datei hochladen, wäre hilfreich
Plotter
Themenstarter
Forum-Fortgeschrittener
Beiträge: 51
Anmeldedatum: 26.05.10
Wohnort: ---
Version: ---
Verfasst am : 31.05.2010, 12:57
Titel :
die Datei (ASCII) sieht ungefär so aus:
es sind etwas über 100 000 Zeilen
Beschreibung:
Download
Dateiname:
file.JPG
Dateigröße:
47.13 KB
Heruntergeladen:
1234 mal
Fourier
Forum-Guru
Beiträge: 329
Anmeldedatum: 05.04.10
Wohnort: Karlsruhe
Version: 2009b
Verfasst am : 31.05.2010, 13:31
Titel :
also wie ich sehe, es gibt viele spalten, du willst aber nur datum und zeit lesen. das sollte so gehen hat bei einem kleinen beispiel bei mir zumindest funktioniert.
gruss
Plotter
Themenstarter
Forum-Fortgeschrittener
Beiträge: 51
Anmeldedatum: 26.05.10
Wohnort: ---
Version: ---
Verfasst am : 31.05.2010, 15:57
Titel :
eigentlich habe ich Datum oder Zeit gemeint.... aber es funktioniert trotzdem nicht
denny
Supporter
Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
Verfasst am : 31.05.2010, 16:50
Titel :
Hallo,
Was funktioniert nicht, bitte auch Probleme/ Fehlermeldung sagen.
Also wenn immer noch OUT OF MEMORY bekommst, dann musst du deine Datei sequenziell verarbeiten
irgendwie so:
Plotter
Themenstarter
Forum-Fortgeschrittener
Beiträge: 51
Anmeldedatum: 26.05.10
Wohnort: ---
Version: ---
Verfasst am : 01.06.2010, 07:50
Titel :
Spitze!!!! Genau das, was ich haben wollte! Vielen, vielen Dank!!!!
kurze Frage noch:
besteht eventuell die Mögligkeit die Berechnungszeit zu beschleunigen? es dauert eine Weile bis die Berechnung durch ist (hab noch größere Dateien).
denny
Supporter
Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
Verfasst am : 01.06.2010, 10:15
Titel :
Alternative dazu wäre TEXTSCAN, dort kann man ja eingeben wie viele Zeilen auf einmal man einlesen möchte
Code:
fid = fopen ( 'test.asc ') ;
c=1 ;
bytes_per_row = length ( fgetl ( fid) ) +2 ;
fseek ( fid,0 ,'eof ') ;
row_numb = round ( ftell ( fid) /bytes_per_row) ;
fseek ( fid,0 ,'bof ') ;
t = zeros ( 1 ,row_numb) ;
while ~feof ( fid)
% hier kannst statt 100 auch 1000 Zeilen einlesen
row = textscan ( fid,'%s %*f %*f %*f %*f ', 100 , 'Delimiter ', ', ') ;
row = row{ :} ;
t( c:c+length ( row) -1 ) = datenum ( row,'yyyy-mm-dd HH:MM:SS ') ;
c=c+length ( row) ;
end
fclose ( fid) ;
%Zeit
datestr ( t,'HH:MM:SS ')
%Datum
datestr ( t,'yyyy-mm-dd ')
Plotter
Themenstarter
Forum-Fortgeschrittener
Beiträge: 51
Anmeldedatum: 26.05.10
Wohnort: ---
Version: ---
Verfasst am : 01.06.2010, 11:41
Titel :
ok, weiss ich bescheid. Danke noch mal!
Plotter
Themenstarter
Forum-Fortgeschrittener
Beiträge: 51
Anmeldedatum: 26.05.10
Wohnort: ---
Version: ---
Verfasst am : 30.06.2010, 07:58
Titel :
Hallo, ich möchte noch mal zu diesem Thema zurückkommen und zwar wenn ich Datum / Uhrzeit mit Angabe von Zeilen einlesen möchte und den Codec verwende, tritt bei mir ein fehler auf:
??? DATENUM failed.
Failed on converting date string to date number.
Error in ==> DTM at 16
t(c:c+length(row)-1) = datenum(row,'yyyy-mm-dd HH:MM:SS');
Code:
fid = fopen ( 'test.asc ') ;
c=1 ;
bytes_per_row = length ( fgetl ( fid) ) +2 ;
fseek ( fid,0 ,'eof ') ;
row_numb = round ( ftell ( fid) /bytes_per_row) ;
fseek ( fid,0 ,'bof ') ;
t = zeros ( 1 ,row_numb) ;
while ~feof ( fid)
% hier kannst statt 100 auch 1000 Zeilen einlesen
row = textscan ( fid,'%s %*f %*f %*f %*f ', 100 , 'Delimiter ', ', ') ;
row = row{ :} ;
t( c:c+length ( row) -1 ) = datenum ( row,'yyyy-mm-dd HH:MM:SS ') ;
c=c+length ( row) ;
end
fclose ( fid) ;
%Zeit
datestr ( t,'HH:MM:SS ')
%Datum
datestr ( t,'yyyy-mm-dd ')
Woran könnte es liegen?
Gruß Plotter
denny
Supporter
Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
Verfasst am : 30.06.2010, 09:56
Titel :
Hallo
Wahrscheinlich ist Datumsformat in String anders als der Format, welcher an DATENUM übergeben wird.
Da muss du reinschauen, setzte entweder Breakpoint und kontrolliere Schrittweise, oder aktiviere in Matlab Menu-Punkt Debug->Stop if Errors/Warnings.
Plotter
Themenstarter
Forum-Fortgeschrittener
Beiträge: 51
Anmeldedatum: 26.05.10
Wohnort: ---
Version: ---
Verfasst am : 30.06.2010, 11:39
Titel :
stimmt, das Format ist anders.
wie macht man, das das Format bei der Übergabe übereinstimmt?
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.