Verfasst am: 23.11.2016, 14:55
Titel: Datums Problem
Hallo zusammen,
ich habe erst seit 3 Tagen mit Matlab begonnen und nun habe ich Probleme mit der Formatierung einer Textdatei.
Ich importiere diese. Die ersten 45 Zeilen sind nur headers. Es gibt nur eine Spalte.
ab Zeile 45 steht dann folgender Ausdruck:
2016-11-12T08:33:59.779807XXXXXXX
XXXX ist der übrige Anhängsel. Da ich eine eine Grunddatei verwende, möchte ich ein Text- oder StringArray erstellen mit folgender Zusammensetzung:
12.11.2016 08:33:59,779807
Um zunächst die Zahlen zu erhalten habe ich folgende Schleife benutzt. Die funktioniert auch.
Code:
% Das ist mein Programm
Data = importdata('datei.txt',':');
zeile=45 %kopfzeilen werden abgeschnitten
i = 1 while zeile<=length(Data)
tmp = Data{zeile};
yy(i)=str2num(tmp(1:4));
mm(i)=str2num(tmp(6:7));
dd(i)=str2num(tmp(9:10));
h(i)=str2num(tmp(12:13));
m(i)=str2num(tmp(15:16));
s(i)=str2num(tmp(18:27));
i=i+1;
zeile=zeile+1;
Verfasst am: 23.11.2016, 18:36
Titel: Re: Datums Problem
Hallo Penguins,
Ist das Ziel das Schreiben eines Files?
Was ist das Ergebnis von "Data = importdata('datei.txt',':');"? das können wir mangels Text-Datei nicht selbst herausfinden. Das zu wissen ist aber wichtig, denn das sind ja Deine Input-Daten.
Zitat:
XXXX ist der übrige Anhängsel. Da ich eine eine Grunddatei verwende, möchte ich ein Text- oder StringArray erstellen mit folgender Zusammensetzung:
12.11.2016 08:33:59,779807
Das ist nicht klar. Was ist eine "Grunddatei"? Möchtest Du wirklich ein Komma als Dezimal-Trenner haben? Damit gibt es immer viele Probleme und man muss für den Import zunächst die Kommas wieder in Punkte umwandeln.
Erstmal vielen Dank, dass mir so schnell geholfen wird.
Angehängt habe ich ein Screenshot von der Matrix gemacht, von der Textdatei, die importiert wird.
Ich habe eine Vorlage bekommen, die einzelne Ordner durchsucht, die darin entsprechenden Textdateien in eine Excel datei umwandelt. Jetzt möchte ich das für meine Textdateien nutzen und auch Auswertungen machen.
Das Einlese Programm funktioniert schon für einige Textdateien, wenn man die importierte Martix in .data und .textdata aufteilen kann:
Code:
% Aufteilung im Einlese Programm (eine Funktion)
data.textdata = data.textdata(zeile:end,1);
% Datum in Zahl umwandeln:
Zeit = datenum(data.textdata,Zeiteinheit);
%Wobei für die Zeiteinheit, welche in die Funktion Einlesen gilt:
Zeiteinheit='dd.mm.yyyy HH:MM:SS'
%die Daten Matrix wird dann hier erstellet:
Datei_n = [Zeit, data.data];
Ungefähr so möchte ich das auch für die Textdatei machen, die ich angehängt habe. Jedoch funktioniert, dass nicht so gut.
Mit dlmread krieg ich die "Data" sozusagen, das funktioniert auch. Nun möchte ich einfach diese datenum wie oben dargestellt kreieren.
Matrix.PNG
Beschreibung:
Die Textdatei die ich importiere, sieht so dann aus
Ungefähr so möchte ich das auch für die Textdatei machen, die ich angehängt habe. Jedoch funktioniert, dass nicht so gut.
Das kann man nicht konkret beantworten. Je präziser die Frage, desto leichter kann man sie beantworten. Was brauchst Du als nächstes?
Gruß, Jan
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.