Verfasst am: 14.02.2008, 13:00
Titel: (datenum) Datum vergleichen und herausfiltern
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.
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.200400:00:00','dd.mm.yyyy HH:MM:SS');
Date3 = datenum('01.02.200400:00:00','dd.mm.yyyy HH:MM:SS');
t = (sensorStr.Date >= Date2 )&(sensorStr.Date < Date3);
end
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.
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
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.