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

Nach fehlenden Zeitangaben suchen

 

Mensch61
Forum-Anfänger

Forum-Anfänger


Beiträge: 46
Anmeldedatum: 13.11.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.11.2014, 19:53     Titel: Nach fehlenden Zeitangaben suchen
  Antworten mit Zitat      
Hallo
ich habe eine Messreihe mit Datum-und Zeitangabe in der Form

10.01.2012 11:00:00
10.01.2012 11:15:00
10.01.2012 11.30:00


immer im 15 minuten Takt.Jedoch fehlen mir einige Werte.Ich hab versucht sie zuerst mit datenum umzuwandeln und dann die Differenz zu bilden um zu sehen ob es eine Abweichung gibt.Das hat aber nicht so wirklich geklappt.Hätte irgend jemand eine Idee wie ich das lösen kann.Würde mich sehr freuen.Vielen Dank im Voraus.
Private Nachricht senden Benutzer-Profile anzeigen


Epfi
Forum-Meister

Forum-Meister



Beiträge: 1.134
Anmeldedatum: 08.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.11.2014, 20:17     Titel:
  Antworten mit Zitat      
Was genau hat denn nicht geklappt? Wie hast Du es gemacht und gab es ne Fehlermeldung?

Falls Du das ganze Jahr betrachtest: Sommer-/ und Winterzeitumstellung nicht vergessen... Und 2012 war ein Schaltjahr, falls Du Dich wundern solltest, warum Dein Programm für die Daten von 2011 und 2013 nicht funktioniert oder komische Werte liefert.
Private Nachricht senden Benutzer-Profile anzeigen
 
Mensch61
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 46
Anmeldedatum: 13.11.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.11.2014, 20:41     Titel:
  Antworten mit Zitat      
Also mit es hat nicht geklappt meine ich das ich mit dem Ergebnis nichts anfangen kann.Srry habs wohl falsch geschrieben die Daten handeln von ganzen Jahr 2013.Mein Code sieht folgendermaßen aus:
Code:
i=length(Datum);
C=nan(i,1);
for i=1:length(Datum)
    short = (cellfun('length', Datum) == 10);
    Datum(short) = strcat(Datum(short), ' 00:00:00');
    C(i,1)=datenum(Datum{i,1});
end
   

for i=2:1:size(Datum,1)
diffVec1(i-1,1)=C(i,1)-C(i-1,1);
end

 

An sich stimmt der Code und es kommt keine Fehlermeldung bloß ich kann mit dem Ergebnis nichts anfangen.
zb kommt raus
0.0104
0.0104
-0.9896

Das letzte Ergebnis kommt wegen 00:00:00 Uhr zustande.
Private Nachricht senden Benutzer-Profile anzeigen
 
Epfi
Forum-Meister

Forum-Meister



Beiträge: 1.134
Anmeldedatum: 08.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.11.2014, 21:03     Titel:
  Antworten mit Zitat      
datenum gibt Dir die Zeit in Tagen seit dem 0. Januar 0000 zurück. Das heißt, dass eine Zeitdifferenz auch in Tagen angegeben wird. Und 0,0104 Tage sind gerade die gesuchten 15min.

Also hast Du alles richtig gemacht und alles funktioniert ;)

Den unteren Code-Block kannst Du einfach durch [code]diff(C)[/quote] ersetzen. Das ist nicht nur kürzer sondern auch schneller.
Private Nachricht senden Benutzer-Profile anzeigen
 
Mensch61
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 46
Anmeldedatum: 13.11.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.11.2014, 21:20     Titel:
  Antworten mit Zitat      
Danke du hast recht mit meinem Code hat es etwas lange gedauert.Aber mein Problem besteht immernoch.Mit der Differenz bekomme ich nicht das erhoffte Ergebnis.Damit finde ich nicht die Stellen wo die Daten fehlen. Gibt es vielleicht eine andere Methode wie ich das lösen kann?
Private Nachricht senden Benutzer-Profile anzeigen
 
Epfi
Forum-Meister

Forum-Meister



Beiträge: 1.134
Anmeldedatum: 08.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.11.2014, 21:25     Titel:
  Antworten mit Zitat      
Was gibt Dir diff() denn an den Stellen, wo Daten fehlen aus?

Kannst Du mal einen kleinen Probedatensatz mit einem Fehler in der Mitte (10 Werte oder so) durch das Programm laufen lassen und sowohl den Datensatz als auch das Ergebnis von diff() hier posten?
Private Nachricht senden Benutzer-Profile anzeigen
 
Mensch61
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 46
Anmeldedatum: 13.11.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.11.2014, 21:46     Titel:
  Antworten mit Zitat      
Das Problem ist ja ich weis nicht an welchen Stellen die Daten fehlen.Ich weiß nur das welche fehlen.Ich lass das ganze dann plotten und schaue wo es abweicht.
Private Nachricht senden Benutzer-Profile anzeigen
 
Epfi
Forum-Meister

Forum-Meister



Beiträge: 1.134
Anmeldedatum: 08.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.11.2014, 21:52     Titel:
  Antworten mit Zitat      
Du kannst ja einfach aus Deinen Eingangsdaten 10 Zeilen rauskopieren, eine davon löschen und diesen kleinen Datensatz dann durch Dein Programm laufen lassen. Dann müsstest Du ja sehen, ob, wo und wie es hakt...
Private Nachricht senden Benutzer-Profile anzeigen
 
Mensch61
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 46
Anmeldedatum: 13.11.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.11.2014, 22:13     Titel:
  Antworten mit Zitat      
Ich habs jetzt gemacht wie du das gesagt hast und es hat auch geklappt.Zwischen der Zeile 4 und 5 fehlt ein Datum und es kommt bei diff 0.0208 raus.

ans.rar
 Beschreibung:

Download
 Dateiname:  ans.rar
 Dateigröße:  518 Bytes
 Heruntergeladen:  258 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Epfi
Forum-Meister

Forum-Meister



Beiträge: 1.134
Anmeldedatum: 08.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.11.2014, 22:43     Titel:
  Antworten mit Zitat      
Dann kannst Du jetzt die Stellen zum Beispiel mit
Code:
fehlende_werte = find(C > 0.015)
finden. Allerdings kannst damit nicht unterscheiden, wie viele Werte Dir an der Stelle fehlen.

Das find() wird Dir eine von beiden Zeitumstellungen nicht anzeigen (da ist das diff() negativ), bei der anderen sieht es aber so aus, als würde eine Stunde fehlen. Das musst Du dann leider von Hand rausfischen und gesondert behandeln.
Private Nachricht senden Benutzer-Profile anzeigen
 
Mensch61
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 46
Anmeldedatum: 13.11.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.11.2014, 23:05     Titel:
  Antworten mit Zitat      
Genau der Befehl hat gefehlt.Er findet alle fehlenden Werte und auch beide Zeitumstellungen.Vielen Dank für deine Hilfe hat mich sehr gefreut Smile Smile
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 - 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.