|
|
Problem mit dem Laden von Daten |
|
Krischi |

Forum-Anfänger
|
 |
Beiträge: 15
|
 |
|
 |
Anmeldedatum: 05.10.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 18.12.2008, 12:56
Titel: Problem mit dem Laden von Daten
|
 |
Hi,
ich benutze die Funktion load um Daten in Matlab zu laden. Leider sind ein paar der Daten, nämlich die der gemessenen Zeit, als Uhrzeit angegeben, d.h. im Format: Stunde.Minute.Sekunde.Zehntelsekunde.
Der Befehle
time = name(:,2);
lädt nur die Stunden.
Wie kann ich die vollständige Uhrzeit laden? Die Daten sind in einer .dat Datei gespeichert. Es sind mehrere Hundert, d.h. manuell ändern kommt nicht in Frage.
Vielen Dank im Vorraus!
Krischi
|
|
|
|
|
Andreas Goser |

Forum-Meister
|
 |
Beiträge: 3.654
|
 |
|
 |
Anmeldedatum: 04.12.08
|
 |
|
 |
Wohnort: Ismaning
|
 |
|
 |
Version: 1.0
|
 |
|
|
 |
|
Verfasst am: 18.12.2008, 13:22
Titel:
|
 |
Das sind natürlich noch recht dürftige Informationen... Was ist das für eine Datei? ASCII? Excel?
Genrerell ist das importieren von Zeit- und Datumsinformationen in MATLAB etwas tricky - für Deutsche. Ich empfehle die Informationen erst einmal als Character Array zu importieren und dann schlaue - eigene - Algorithmen darauf loszulassen. Wenn man erst Mal eine zuverlässiges serial date in MATLAB hat, sind Umrechnungen aber zuverlässig.
|
|
|
Krischi |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 15
|
 |
|
 |
Anmeldedatum: 05.10.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 18.12.2008, 13:27
Titel:
|
 |
Ja es ist eine ASCII Datei. Ein Beispiel der Uhrzeit: 16:37:55.4
Un der Doppelpunkt ist das Problem, da Matlab wohl alles bis zum Doppelpunkt als eigene Spalte interpretiert.
|
|
|
Andreas Goser |

Forum-Meister
|
 |
Beiträge: 3.654
|
 |
|
 |
Anmeldedatum: 04.12.08
|
 |
|
 |
Wohnort: Ismaning
|
 |
|
 |
Version: 1.0
|
 |
|
|
 |
|
Verfasst am: 18.12.2008, 13:36
Titel:
|
 |
Da ist ziemlich sicher "Handarbeit" nötig. 'HH:MM:SS' ist zwar ein Standardformat, die Sekundenbruchteile aber nicht.
|
|
|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 18.12.2008, 13:58
Titel:
|
 |
Es gibt aber Tausendstel Sekunden, hilft das?
|
|
|
Andreas Goser |

Forum-Meister
|
 |
Beiträge: 3.654
|
 |
|
 |
Anmeldedatum: 04.12.08
|
 |
|
 |
Wohnort: Ismaning
|
 |
|
 |
Version: 1.0
|
 |
|
|
 |
|
Verfasst am: 18.12.2008, 14:25
Titel:
|
 |
Ja, das ist ein "Free-Form Date Format Specifier". Und da die Daten scheinbar ja einen Dezimalpunkt und kein Dezimalkomma haben dürfte es gehen.
|
|
|
Krischi |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 15
|
 |
|
 |
Anmeldedatum: 05.10.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 18.12.2008, 14:34
Titel:
|
 |
Ok, aber wie kann ich auf die Daten zugreifen? Wie kann ich diesen "Format Specifier" dazu benutzen die Daten aus der .dat Datei zu laden?
Ich habe wenig bis keine Erfahrung mit Matlab..sorry.
|
|
|
Andreas Goser |

Forum-Meister
|
 |
Beiträge: 3.654
|
 |
|
 |
Anmeldedatum: 04.12.08
|
 |
|
 |
Wohnort: Ismaning
|
 |
|
 |
Version: 1.0
|
 |
|
|
 |
|
Verfasst am: 18.12.2008, 14:56
Titel:
|
 |
OK, ich stochere noch ein wenig im Nebel. Der Code sind doch prima aus? Ich spekuliere mal: Ist gewünscht nur an die Sekundeninformationen zu kommen? Das geht dann z. B. so:
|
|
|
Krischi |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 15
|
 |
|
 |
Anmeldedatum: 05.10.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 18.12.2008, 15:13
Titel:
|
 |
Ok, es kann sein dass wir komplett aneinander vorbei reden oder ich einfach nichts kapiere (wahrscheinlicher).
Den Code den ihr vorschlagt kann man benutzen um die Informationen bzgl. der Stunden, Minuten, Sekunden usw. herauszulesen aus der kompletten Zeitinfo.
Ich habe aber im Moment gar keinen Zugriff auf die komplette Info, also auf hh:mm:ss.0.s !
Diese Info ist in einer .dat Datei. Ich versuche einzelnen Spalten mit der Funktion load zu extrahieren. Das funktioniert aber nicht, wegen dem Doppelpunkt in der Zeitinfo. Ich bekomme nur die Stundenangabe. WEnn ich dann die nächste Spalte lesen will, bekomme ich aber nicht die Minuten, sondern andere Daten. Hier ein Bsp zweier Reihen aus meiner Dat Datei:
12/17/08 16:34:56.4 1.0345
12/17/08 16:34:57.4 1.1345
D.h. der Befehl time = filename(:,2) liefert als Ergebniss
16
16
Der Befehl y = filename(:,3) liefert als Ergebniss
1.0345
1.1345
|
|
|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 18.12.2008, 15:26
Titel:
|
 |
Wenn genau diese zwei Zeilen
Zitat: |
12/17/08 16:34:56.4 1.0345
12/17/08 16:34:57.4 1.1345 |
in einer Datei zeit.dat gespeichert sind kannst Du die z.B. so auslesen:
Ansonsten geht es mir wie Andreas. Wo hakt es konkret?
|
|
|
Krischi |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 15
|
 |
|
 |
Anmeldedatum: 05.10.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 18.12.2008, 15:51
Titel:
|
 |
Genau diese dat Datei und der Code liefern mir:
ans =
'Arial;}}'
'Msftedit'
'12/17/08'
'1.0345\par'
'16:34:57.4'
''
''
??? Error using ==> datenum at 174
DATENUM failed.
Error in ==> readandplotdata at 7
dn=datenum(data{1,2}) % als serial date number
Caused by:
Error using ==> datevec at 219
Failed to lookup month of year.
Was mache ich denn falsch? Ich kann ja scheinbar nicht einmal einen Code kopieren, einfügen und ausführen.
A pro pro: Vielen Dank für eure Mühe!
|
|
|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 18.12.2008, 15:58
Titel:
|
 |
Vermutlich sieht die .dat-Datei doch etwas anders aus als Du gesagt hast.
Poste mal die ersten paar kompletten Zeilen davon.
|
|
|
Krischi |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 15
|
 |
|
 |
Anmeldedatum: 05.10.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 18.12.2008, 16:02
Titel:
|
 |
Nach diesem Teil deines Codes
fid=fopen('zeit.dat');
data=textscan(fid,'%s %s %d');
fclose(fid);
müsste man doch mit
data(1)
das folgende als Antwort bekommen, oder:
12/17/08
12/17/08
Ich bekomme aber:
>> data(1)
ans =
{8x1 cell}
Das kann ja wohl nicht sein. Woher kommen denn da bitte acht mal eins Matrix? Es sind doch nur zwei Werte...
|
|
|
Krischi |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 15
|
 |
|
 |
Anmeldedatum: 05.10.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 18.12.2008, 16:04
Titel:
|
 |
Das ist die dat Datei. Ich habe sie mit Word Pad geöffnet.
12/17/08 16:34:56.4 1.0345
12/17/08 16:34:57.4 1.1345
AHHHH jetzt öffne ich sie mit Notepad und siehe da:
{\rtf1\ansi\ansicpg1252\deff0\deflang1030{\fonttbl{\f0\fswiss\fcharset0 Arial;}}
{\*\generator Msftedit 5.41.15.1515;}\viewkind4\uc1\pard\f0\fs20 12/17/08 16:34:56.4 1.0345\par
12/17/08 16:34:57.4 1.1345 \par
}
Das ist wohl das Problem...
|
|
|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 18.12.2008, 16:10
Titel:
|
 |
Ja, das ist das Problem.
Entweder bringst Du Matlab bei, rtf-Dateien zu lesen (vielleicht findest Du was im FileExchange, oder vielleicht kann es das auch schon) oder Du speicherst die Datei als (unformatierte) txt-Datei ab.
|
|
|
|
Gehe zu Seite 1, 2 Weiter
|
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.
|