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

Mittelwert aus 2 Elementen mitten im vektor

 

deydalus
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 12.05.13
Wohnort: Ulm
Version: 2012a
     Beitrag Verfasst am: 12.05.2013, 19:16     Titel: Mittelwert aus 2 Elementen mitten im vektor
  Antworten mit Zitat      
Hallo liebe Experten,

ich hoffe ihr könnt mir helfen. Ich habe große Vektoren mit Messdaten. Zwischen drin sind immer wieder fehlerhafte Daten, die mit -999 gekennzeichnet sind. Hier mal ein Beispiel:
Code:

235,9711
235,9018
235,9840
-999
235,9977
236,0359
235,9630
235,9874
 


Ich möchte nun die -999 durch den Mittelwert des davor und dahinter liegenden Elementes ersetzen. Also im obigen Beispiel 235,99085.
Bisher habe ich den folgenden Code mit dem ich die Werte durch den Mittelwert des gesamten Vektors ersetze:
Code:

y(y==-999)=mean(y(y~=-999));
 


Problematisch ist noch, es gibt unterschiedlich viele -999s an zufälligen Stellen, z.T. auch mehrere hintereinander. Ich möchte immer den Mittelwert der unmittelbar benachbarten Elemente. Da der Vektor y über 2 Millionen Elemente hat, möchte ich eine for-Schleife vermeiden.

Ich hoffe ihr habt einen Trick.

Schöne Grüße
Holger
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 12.05.2013, 19:23     Titel:
  Antworten mit Zitat      
Hallo,

das kannst du mit interp1 erreichen:

Code:
idx = (y == -999);
y(idx) = interp1(find(~idx), y(~idx), find(idx));


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
deydalus
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 12.05.13
Wohnort: Ulm
Version: 2012a
     Beitrag Verfasst am: 12.05.2013, 19:29     Titel:
  Antworten mit Zitat      
Danke.

Superschnelle Hilfe.

Und Gratulation zum post 7777 Smile Wink
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.