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

(datenum) Datum vergleichen und herausfiltern

 

radian
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 12.10.07
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.02.2008, 13:00     Titel: (datenum) Datum vergleichen und herausfiltern
  Antworten mit Zitat      
Hallo,
ich habe folgendes Problem.
Ich habe Datensätze die ein Datum beinhalten wie z.B. 01.01.2003 06:02:12.
Nachdem ich diese Datensätze eingelesen habe, befinden sich das Datum samt Uhrzeit in einem Vektor der die umgerechnete Zahl des Datums besitzt.
Code:
Date  = datenum(fDate,'dd.mm.yyyy HH:MM:SS');


So sieht der Vektor aus beim Debuggen:
7.3195e+05
7.3195e+05
7.3195e+05
7.3195e+05
7.3195e+05
7.3195e+05
...

Mein Ziel ist es edie Daten in Monaten zu sortieren und zu trennen. Daher habe ich versucht mit manuell ein Datum in eine Zahl zu wandeln:
Code:
Date2  = datenum('01.01.2004 00:00:00','dd.mm.yyyy
HH:MM:SS');

Leider erhalte ich folgendes Ergebnis:
731947

Mit diesem Ergebniss kann ich aber kein Verglecih anstellen, da es zu wenige Stellen besitzt. Ich wollte noch ein Ergebniss manuell erstellen lassen um damit ein boolschen Vektor zu erlangen in dem alle Werte von Date eine 1 erhalten die zwischen den beiden Grenzen liegen. Das funktioniert aber nicht. kann mir da jemand einen Tip geben?, was mache ich verkehrt?

Code:
% Funktion zur Darstellung der Modulgruppenerträge über ein Jahr
function ModulGrErtrag(filename, savename, Pmax)
% Übergbewerte:
% -------------

% filename   ->   sensor*.dat Sensordatei
% savename   ->   sensor*.mat Sicherung der Sensordatei in mat-Format
% Pmax       ->   maximale Modulgruppenpleistung
%
% Sch, Bär, 28.10.07
format long;
% Laden und Einlesen der Datei in temporärer Variable
fid = fopen(filename);
Tmp = textscan(fid,'%10n %19c %f', 'Whitespace' );
fclose(fid);

% Sichern der Daten in Datenstrucktur
    ID = Tmp{1,1};
    fDate = Tmp{1,2};
    % Konvertierung des Datums in eine Serielle Zahl
    Date  = datenum(fDate,'dd.mm.yyyy HH:MM:SS');
    %Time = Tmp(1,3);
    Value = Tmp{1,3};

    % Sichern der Datenstrucktur in *.mat - File
    savefile = savename;
    save(savefile, 'ID', 'Date', 'Value')
 
% Laden der Globalstrahungsdaten und der Temparaturdaten
    globalStr = load('globalStr.mat')
    mTemp = load('mTemp.mat')
% Laden der Sensordaten
    sensorStr = load(savename);

% Entfernen überflüssiger Variablen
    clear fid Tmp ID  Value savename filename ans savefile fDate;

   
%--------------------------
    Date2  = datenum('01.01.2004 00:00:00','dd.mm.yyyy HH:MM:SS');
    Date3  = datenum('01.02.2004 00:00:00','dd.mm.yyyy HH:MM:SS');
    t = (sensorStr.Date >= Date2 )&(sensorStr.Date < Date3);
end
Private Nachricht senden Benutzer-Profile anzeigen


steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.029
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2024a
     Beitrag Verfasst am: 14.02.2008, 13:18     Titel:
  Antworten mit Zitat      
Moin,

Wenn du dir die Datumsangaben mit datenum umgewandelt hast und die Differenz bildest so erhälst du das Ergebnis in Tagen.

z.B.:
Code:
date1 = datenum('01.01.2007 12:00','dd.mm.yyyy HH:MM');
date2 = datenum('01.01.2008 12:00','dd.mm.yyyy HH:MM');
diff1 = date1 - date2

ergibt
Zitat:
diff1 =

365


Vllt. kannst du dir darüber was bauen.
Du müsstest die Differenz zwischen dem Datum und einem Referenzwert bilden und schauen ob dieser Wert zw. 0 und 31 (bzw. 28, 29, 30 - je nach Monat) liegt.

Probiers aus, aber ich denke damit könntest du zu einem Ergebnis kommen.

Gruß
Alex
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
radian
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 12.10.07
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.02.2008, 13:38     Titel:
  Antworten mit Zitat      
Danke dir, habe es auch schon hinbekommen.
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.