WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

von single zu double dgts - Zeitreihe

 

Hain

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.02.2014, 12:22     Titel: von single zu double dgts - Zeitreihe
  Antworten mit Zitat      
Hallo liebe Leute!

ich habe folgendes Problem:
ich möchte aus der Daten - Zeit Reihe ein Zeitangaben format herauslesen nur leider lässt das Format zu wünschen übrig:

Auszug:

1983,12,31,22,8230
1983,12,31,23,8010
1984,1,1,0,7890
1984,1,1,1,7880
1984,1,1,2,7950
1984,1,1,3,8160
1984,1,1,4,8320
1984,1,1,5,8530
1984,1,1,6,8680
1984,1,1,7,8690
1984,1,1,8,8640
1984,1,1,9,8470
1984,1,1,10,8220
1984,1,1,11,7990
1984,1,1,12,7780
1984,1,1,13,7750

yyyy,m(m),d(d),h(h),Data



das habe ich habe ich jetzt beim einlesen auseinander gezogen und dann wieder zusammen gesetzt, sodass ich für die Zeitangabe das format
yyyy.m(m).d(d) h(h) habe

Code:

fid  = fopen('data.txt');
data = textscan(fid, '%s %s %s %s %s', 'delimiter', ',');


a = data{1};
b = data{2};
c = data{3};
d = data{4};

DT = cellfun(@(a,b,c,d)[a,'.',b,'.',c,' ',d], a, b, c, d, 'uniformoutput',false);
 


mein Ansatz um die Zeit in Matlab-taugliche form zu bringen ist jetzt dass ich, da ich ja alles schon einzelnt habe (yyyy; d(d); .. usw)
die einzelnen Vektoren mit nullen auffülle sodass alle einzelnen zahlen auch zu double dgts werden, die dbl dgts aber solche bleiben

1 also 01 dagestellt wird. usw

bzw die Stunden von dieser form:
1
in diese gebracht werden:
01:00:00

und da bin ich nun leider seit geraumer zeit am suchen und überlegen aber komm leider auf keine grünen zweig!

ich hoffe ich habe mich einigermaßen verständlich ausgedrückt..
ich freu mich über jede Hilfe.

lg Hain


denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 13.02.2014, 13:07     Titel:
  Antworten mit Zitat      
Hallo

besser alles als eine Zahlenmatrix einzulesen, weil der datenum-Fkt kann man auch einen Zahlenvektor übergeben
Code:

fid  = fopen('data.txt');
data = textscan(fid, '%n %n %n %n %n', 'delimiter', ',','CollectOutput',true);
fclose(fid);
data =[data{:}];
% hier die Zahlen aus der Matrix extrahieren  und Minuten und Sekunden mit Nullen füllen
zeitvec = [data(:,1:4), zeros(size(data,1), 2)];
timestamp = datenum(zeitvec)

datestr(timestamp,'yyyy.mm.dd HH:MM:SS')
 
Private Nachricht senden Benutzer-Profile anzeigen
 
hain

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.02.2014, 14:53     Titel:
  Antworten mit Zitat      
Großartig! ich danke dir! <3
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.