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

datum per schleife auslesen

 

micky
Forum-Anfänger

Forum-Anfänger


Beiträge: 20
Anmeldedatum: 07.05.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.05.2008, 16:32     Titel: datum per schleife auslesen
  Antworten mit Zitat      
servus miteinander

ich hab mal folgendes problem
Ich hab in nem cell-array (size 5031x1) Daten im Datumsformat dd-mmm-yy.

diese will ich nacheinander auslesen und in nem datums vektor umschreiben.
eigentlich hab ich, wie ich aus dem cell array das datum herauslesen kann schon verstanden, und restliche befehle hab ich mir auch zusammengesucht.
jedenfalls bleibt er irgendwo hängen und versteh nicht warum.
wenn ich ein probelauf mit nur 3 durchgängen mache (per hand und per console) is alles prima und er schreibt das ergebnis untereinander in die neue variable.

Code:

clear
load date

d=length(time);

i=1;
while (i<d)
    n=time{i};
    newtime(i,:,:,:,:,: )=datevec(n);
    i+1
end
 

Error in ==> datevec at 112
icu_dtformat = cnv2icudf(format);

Error in ==> versuch at 9
newtime(i,:,:,:,:,Smile=datevec(n);

im prinzip hab ich mir das so vorgestellt. wobei ich weiss, dass es da sicherlich noch ne elegantere weise gibt.

mit der n variable wird nach und nach jedes einzelne datum durchlaufen . mit newtime soll dann die transformation in ein datumsvektor erfolgen.
dieser hat die size ix6 (abgespeichert werden ja jahr monat tag std minuten sekunden).

aber irgendwie will das nicht, wie ich will.
ich vermute es liegt halt in der zeile
Code:

newtime(i,:,:,:,:,:)=datevec(n);
 

sieht irgendwie sehr unelegant aus.
aber ohne newtime(i,:,:,:,:,Smile kommt ansonsten fehlermeldung
---> Subscripted assignment dimension mismatch.

ansonsten bleitb er irgendwie in der endlosschleife hängen.
nach abbruch kommt dann meldung
Code:

Error in ==> datevec at 112
            icu_dtformat = cnv2icudf(format);

Error in ==> versuch at 9
    newtime(i,:,:,:,:,:)=datevec(n);
 





stecke noch bissel in den anfängen meiner matlab tätigkeit und bin für jeden hinweis dankbar.

mfg
micky
Private Nachricht senden Benutzer-Profile anzeigen


nschlange
Ehrenmitglied

Ehrenmitglied



Beiträge: 1.320
Anmeldedatum: 06.09.07
Wohnort: NRW
Version: R2007b
     Beitrag Verfasst am: 15.05.2008, 17:14     Titel:
  Antworten mit Zitat      
Hi,

mir ist nicht so richtig klar, was Du machen willst. Kannst Du nochmal sagen, was Du wohin umwandeln willst?
Beispiel:
Code:
clear all;
clc;

datum ={datenum('19-May-2001', 'dd-mmm-yyyy');
        datenum('20-May-2001', 'dd-mmm-yyyy');
        datenum('21-May-2001', 'dd-mmm-yyyy')}
   
x=cellfun( @(c)datestr(c,0),datum,'UniformOutput',0)

_________________

Viele Grüße
nschlange

"Chuck Norris ejakuliert fluessigen Stahl!"
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
micky
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 20
Anmeldedatum: 07.05.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.05.2008, 17:27     Titel:
  Antworten mit Zitat      
ich versuchs mal.

ich hab nen cell array, indem mehrere datumsformate drinne stehen und zwar als string.
sprich
in date steht:
'01-Jan-1981'
'02-Jan-1981' ... etc.

diese will ich nacheinander aufrufen und in nem date vector speichern
sprich
newdate:
[1981 1 1 0 0 0]
[1981 1 2 0 0 0]... etc.
Private Nachricht senden Benutzer-Profile anzeigen
 
nschlange
Ehrenmitglied

Ehrenmitglied



Beiträge: 1.320
Anmeldedatum: 06.09.07
Wohnort: NRW
Version: R2007b
     Beitrag Verfasst am: 15.05.2008, 17:48     Titel:
  Antworten mit Zitat      
Dann versuch es hiermit:
Code:
clear all;
clc;

datum = {'01-Jan-1981';
         '02-Jan-1981'
         '05-Feb-2006'};
   
newdate=cellfun( @(c)datevec(c),datum,'UniformOutput',0);
newdate=cell2mat(newdate)


date ist kein guter Name für eine Variable, das ist nämlich ein Matlab-Befehl.
_________________

Viele Grüße
nschlange

"Chuck Norris ejakuliert fluessigen Stahl!"
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
outsider
Forum-Meister

Forum-Meister


Beiträge: 806
Anmeldedatum: 03.09.07
Wohnort: München
Version: R2012b
     Beitrag Verfasst am: 15.05.2008, 21:14     Titel:
  Antworten mit Zitat      
CELLFUN ist sogar überflüssig an der Stelle:

Code:
>> datum = {'01-Jan-1981';'02-Jan-1981';'05-Feb-2006'};
datum =

    '01-Jan-1981'
    '02-Jan-1981'
    '05-Feb-2006'

>> datevec(datum)
ans =

        1981           1           1           0           0           0
        1981           1           2           0           0           0
        2006           2           5           0           0           0



MfG
Private Nachricht senden Benutzer-Profile anzeigen
 
micky
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 20
Anmeldedatum: 07.05.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.05.2008, 23:30     Titel:
  Antworten mit Zitat      
am anfang dacht ich auch, dass das reichen müsste.
bzw. war mir nicht ganz klar, dass er automatisch alles durchrechnet.
hmm naja anfänger halt.

aber in meinem fall kommt dann immer fehlermeldung:
??? DATEVEC failed, calling DTSTR2DTVECMX.
Failed on converting date string to date number.

oder liegt der fehler selbst in der datei?
kann eigentlich nicht sein. hmmmm

aber da ich auch grad bissel am schleifenbauen blernen bin, müsste die schleife doch eigentlich funktionieren. hmm naja. is so nun überflüssig.

und thx für den hinweis, dass date ja ne vorabvariable in matlab ist.
Private Nachricht senden Benutzer-Profile anzeigen
 
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 - 2024 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.