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

error using datenum (willkürlich)

 

looo

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.07.2009, 14:45     Titel: error using datenum (willkürlich)
  Antworten mit Zitat      
Hallo,

ich habe ein merkwürdiges Problem. Mittels eines GUI rufe ich immer wieder den Befehl datenum() auf. Nach längerer Verwendung bekomme ich immer wieder den folgenden Fehler:



Wenn ich Matlab neustarte, dann funktioniert es wieder für eine Weile ...



Hat jemand eine Idee an was das liegen kann?


Diddy
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 61
Anmeldedatum: 02.08.07
Wohnort: ---
Version: 2009a
     Beitrag Verfasst am: 27.07.2009, 15:05     Titel:
  Antworten mit Zitat      
Hallo,

welche Version von MATLAB nutzt du?
Ich kenne das Problem nicht, so ein Code läuft bei mir Wochen und länger. Vielleicht liegt es an der MATLAB-Version und ist schlichtweg ein Bug. Vielleicht mal bei Mathworks nachschauen.
Private Nachricht senden Benutzer-Profile anzeigen
 
looo

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.07.2009, 07:53     Titel:
  Antworten mit Zitat      
Diddy hat Folgendes geschrieben:
Hallo,

welche Version von MATLAB nutzt du?


R2008b
 
Diddy
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 61
Anmeldedatum: 02.08.07
Wohnort: ---
Version: 2009a
     Beitrag Verfasst am: 28.07.2009, 08:15     Titel:
  Antworten mit Zitat      
Hallo,

hmm, daran sollte es wohl nicht liegen.
Hast du vielleicht ein Beispiel, wo man sehen kann, wie deine Datei aufgebaut ist?

Wieso arbeitest du so?
Code:

a='26.07.2009 08:13'
t=datenum(a,'dd.mm.yyyy HH:MM');
 

Brauchst du die Zeit so?

Alternativ dazu ginge es auch mit
Code:

das gibt dir die Zeit direkt im Matlab-Format aus. Das wäre zumindest eine Variante, die du alternativ mal probieren solltest.

Gruß,
Christian
Private Nachricht senden Benutzer-Profile anzeigen
 
looo

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.07.2009, 10:20     Titel:
  Antworten mit Zitat      
Vielen Dank für Deine Hilfe Diddy

Wie gesagt ich arbeitet mit einer GUI.
In dieser GUI kann über ein EDIT-Feld die Zeit eingegeben werden, bzw. soll die Zeit aus einem Vektor im GUI angezeigt werden. Dazu sind die Konvertierungen datenum() & datestr() notwenig. datestr() macht keine Probleme, nur datnum().
 
Diddy
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 61
Anmeldedatum: 02.08.07
Wohnort: ---
Version: 2009a
     Beitrag Verfasst am: 28.07.2009, 14:25     Titel:
  Antworten mit Zitat      
Nur mal so als Notvariante:

rechne es selber um. Ist zwar erstmal aufwendig, aber vielleicht geht es dann. Ich sehe nicht, wo der Fehler sein könnte, daher ein workaround.
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 28.07.2009, 15:31     Titel:
  Antworten mit Zitat      
Hallo,

es ist leider nicht ganz klar, wie deine Schritte aussehen?

gibst du die Zeit immer manuell an? (Über Edit -Feld)?
Machst du Überprüfung, ob dein Zeit-String immer das erwartete Format hat?

Code:

% z. B
time_str='01.01.1999 12:00'
%
% entspricht dem format und deswegen funktioniert
t=datenum(time_str,'dd.mm.yyyy HH:MM')
%
% verursacht den besagten Fehler
t=datenum(time_str,'dd-mm-yyyy HH:MM')
 



sonst kannst du noch folgendes ausprobieren:

Code:

time_str='01.01.1999 12:00'
z_v=datevec(time_str,'dd.mm.yyyy HH:MM')
t=datenum(z_v)
 
Private Nachricht senden Benutzer-Profile anzeigen
 
looo

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.07.2009, 11:39     Titel:
  Antworten mit Zitat      
denny hat Folgendes geschrieben:

sonst kannst du noch folgendes ausprobieren:
Code:

time_str='01.01.1999 12:00'
z_v=datevec(time_str,'dd.mm.yyyy HH:MM')
t=datenum(z_v)
 


Code hat Folgendes geschrieben:


??? Error using ==> dtstr2dtvecmx
Failed on converting date string to date number.

Error in ==> datevec at 124
y = dtstr2dtvecmx(t,icu_dtformat);


Auch wenn ich datevec anwende kommt der selbe Fehler. Der Fehler liegt in dtstr2dtvecmx.
dtstr2dtvecmx ist eine mex Datei.
Einen merkwürdigen Zustand habe ich jetzt erreicht, jedes zweite mal, wenn die Funktion aufgerufen wird, funktioniert sie:

Code:

>> y = dtstr2dtvecmx({'01.01.09 12:00:32'},'dd.MM.yy HH:mm:ss')
??? Error using ==> dtstr2dtvecmx
Failed on converting date string to date number.
 
>> y = dtstr2dtvecmx({'01.01.09 12:00:32'},'dd.MM.yy HH:mm:ss')

y =

        2009           1           1          12           0          32

>> y = dtstr2dtvecmx({'01.01.09 12:00:32'},'dd.MM.yy HH:mm:ss')
??? Error using ==> dtstr2dtvecmx
Failed on converting date string to date number.
 
>> y = dtstr2dtvecmx({'01.01.09 12:00:32'},'dd.MM.yy HH:mm:ss')

y =

        2009           1           1          12           0          32

>> y = dtstr2dtvecmx({'01.01.09 12:00:32'},'dd.MM.yy HH:mm:ss')
??? Error using ==> dtstr2dtvecmx
Failed on converting date string to date number.
 
>> y = dtstr2dtvecmx({'01.01.09 12:00:32'},'dd.MM.yy HH:mm:ss')

y =

        2009           1           1          12           0          32


Lösen könnte ich das Problem mit "try catch end", jedoch stellt mich diese Lösung nicht zufrieden.
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 29.07.2009, 14:26     Titel:
  Antworten mit Zitat      
Hallo,

komisch, woran es wohl liegen kann.

Kannst du etwa die Zeile direkt in der Konsole ausführen?
Code:

y = dtstr2dtvecmx({'01.01.09 12:00:32'},'dd.MM.yy HH:mm:ss')
 


Ich kann diese Zeile nur in Debugmodus ausführen.(Weil es eine Private Funktion ist) (Breakpoint in datevec)
Falls ja, dann hast du vermutlich zwei Mex-Files, aber das ist nur die Vermutung.

probier mal folgendes, was sagt es?
Code:

which dtstr2dtvecmx
 


Soll eigentlich nichts finden, weil es wie gesagt private Funktion ist
Private Nachricht senden Benutzer-Profile anzeigen
 
looo

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.07.2009, 07:46     Titel:
  Antworten mit Zitat      
denny hat Folgendes geschrieben:

Kannst du etwa die Zeile direkt in der Konsole ausführen?
Code:

y = dtstr2dtvecmx({'01.01.09 12:00:32'},'dd.MM.yy HH:mm:ss')
 


Ich kann diese Zeile nur in Debugmodus ausführen.(Weil es eine Private Funktion ist) (Breakpoint in datevec)
Falls ja, dann hast du vermutlich zwei Mex-Files, aber das ist nur die Vermutung.

probier mal folgendes, was sagt es?
Code:

which dtstr2dtvecmx
 


Soll eigentlich nichts finden, weil es wie gesagt private Funktion ist


geanu so ist es. Die Funktion kann ich nur im Debugmodus ausführen.
Code:

which dtstr2dtvecmx
 

bringt eine Fehlermeldung. Ich habe nun ein m-file geschrieben mit:
Code:
   try
        zeit_num=datenum(akt_zeit,zeit_format);
    catch
        zeit_num=datenum(akt_zeit,zeit_format);
    end

so funktioniert es erstmals, da der Fehler jedes zweite mal beim Aufrufen auftritt. Aber ich bin wie bereits erwähnt noch nicht zufrieden.
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 30.07.2009, 08:40     Titel:
  Antworten mit Zitat      
Da es sich hier um einen möglichen, unbekannten Bug handelt, bitte ich den MathWorks Technischen Suppoort zu kontaktieren. Ich kann das auch gerne veranlassen oder selber durchführen wenn ich die Kontaktdaten per PN bekomme.

Da das Beispiel aber nicht reproduzierbar ist, ist es vermutlich besser eine "WebEx Support-Session" durchzuführen.

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
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.