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

Jeden 12. Wert durch Mittelwert ersetzen

 

Erie

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.07.2018, 21:57     Titel: Jeden 12. Wert durch Mittelwert ersetzen
  Antworten mit Zitat      
Ich habe eine Matrix mit monatlichen Niederschlagswerten aus 30 Jahren. Nach dem Schema:

[1949 1 0; 1949 2 NaN; 1949 3 8; 1949 4 140; 1949 5 NaN; 1949 6 120, ....]

Ich möchte nun die NaN Werte austauschen gegen die Mittelwerte des jeweiligen Monats. Dementsprechend müsste man irgendwie jeden zwölften Wert ansteuern, in diesem Falle immer den Niederschlagswert des Monats Februar mitteln für um das erste NaN zu ersetzen, und die Werte von Mai für den zweiten fehlenden Wert.

Wie mache ich das am schlausten? Vielen Dank im Voraus!


J0nas
Forum-Century

Forum-Century


Beiträge: 208
Anmeldedatum: 10.09.15
Wohnort: ---
Version: ab 2016a
     Beitrag Verfasst am: 26.07.2018, 07:17     Titel:
  Antworten mit Zitat      
Hallo Erie,

Falls deine Matrix aus [JAHR MONAT NIEDERSCHLAG; ...] besteht kannst du das Ganze zum Beispiel folgendermaßen machen:

Code:

monat = 2; % Monatszahl

matrix = HIER STEHT DEINE MATRIX :)

pos_mon = find(matrix(:,2) == monat); % Alle Positionen des gewaehlten Monats auslesen
pos_nan = find(isnan(matrix(pos_mon,3))); % Alle NaNs des Monats auslesen
matrix(pos_mon(pos_nan),3) = 0; % NaNs auf 0 setzen
mon_d = mean(matrix(pos_mon,3)); % Durchschnitt des Monats berechnen
matrix(pos_mon(pos_nan),3) = mon_d; % NaNs durch Durchschnitt ersetzen


Willst du das für alle Monate automatisiert machen, kannst du den Code in eine For-Schleife packen, die den Monat hochzählt.

Grüße
Jonas
_________________

1.) Ask Google & Matlab Documentation
2.) Ask gomatlab.de & Technical Support of MathWorks
3.) Go mad, your problem is unsolvable
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.