Verfasst am: 27.05.2011, 23:07
Titel: Tagesmittelwert aus Messdaten berechnen
Hallo hier im Forum !
Ich habe einen Textfile mit halbstündlichen Messwerten einzelner Luftschadstoffen und möchte daraus nun den Tages und den Wochenmittelwert für jeden einzelnen berechnen.
Einlesen tue ich die Daten mit diesem Programm:
Code:
function stations = readStations(infile)
typ = '%s %s %f %f %f %f %f %f %f %f';
[date time dummy(:,1) dummy(:,2) dummy(:,3) dummy(:,4) dummy(:,5) dummy(:,6) dummy(:,7) dummy(:,8)]= ... TEXTREAD(infile,typ, 'headerlines', 6);
% 2 Schleifen, um nicht vorhandene oder negeative Werte mit NaN zu ersetzen
M_0 = 0;
M_fehler = 0;
for i = 1:size(dummy,1) for k = 1:size(dummy,2);
% keine Messwerte if dummy(i,k) == 0
dummy(i,k) = NaN;
M_0 = M_0 + 1;
end % Messwerte < 0 -> Messfehler if dummy(i,k) < 0
dummy(i,k) = NaN;
M_fehler = M_fehler+1;
end end end disp(['keine Messwerte: ', num2str(M_0)]) disp(['Messfehler : ', num2str(M_fehler)])
Die erste Spalte ist das Datum, die zweite die Uhrzeit der Messung und die 3. bis 10. sind die Messwerte für die ich jeweils den Tages- bzw den Wochenmittelwert berechnen möchte.
Ich hoffe ihr könnt mir weiterhelfen, da ich mit der stepfunktion ( step = 48 ) irgendwie auf dem Schlauch stehe... Danke ans Forum bereits im Voraus !
PS: das ist mein erster Beitrag und ich hoffe, dass alles so wie ich es
gepostet habe passt
Edit by _Peter_: Willkommen im Forum, nur eine kleine Anmerkung zu deinem Post: Nutze die Codeumgebung, diese macht deinen Quellcode wesentlich besser lesbar. Drücke dazu beim Post verfassen oben auf den 'Code' Button, füge dann den Code ein und drücke danach wieder den 'Code' Button.
Hallo,
ich hoffe es findet sich irgendjemand der mir bei meinem
Problem weiterhelfen kann ?!
Ich schaffe es leider auch mit for Schleife nicht auf halbwegs anständige Werte zu kommen...
Vielen Dank
Hallo Grizzly,
ein erster Lösungsansatz wäre folgender, jedoch ist da noch optimierungbedarf, da er eine Weile rechnet wegen der Datenzuordnung. Vielleicht wäre es sinnvoll sich Gedanken über die Speicherung der Daten zu machen um Geschwindigkeit rauszuholen.
values.data = [];
for i = 1 : length(unique_dates)
values(i).date = unique_dates(i);
for j = 1 : length(stations.sdatum) ifstrcmp(unique_dates(i), stations.sdatum(j))
values(i).data = [values(i).data dummy(j,:)];
end end
values(i).day_mean = nanmean(values(i).data);
end
Und wie würdet ihr dann die Wochenmittelwerte berechnen ?
Einstellungen und Berechtigungen
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.