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

Plot: Lineare Interpolation nach Entfernung von Ausreißern

 

twooping
Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 20.11.18
Wohnort: ---
Version: R2019b
     Beitrag Verfasst am: 15.12.2019, 23:53     Titel: Plot: Lineare Interpolation nach Entfernung von Ausreißern
  Antworten mit Zitat      
Ich erstelle einen Plot, der wie auf dem angehängten Foto aussieht.

Die Ausreißer nehme ich raus mit:

Code:

v(v < -2890) = [];
v(v >  2300) = [];
 


Die min. und max. Werte habe ich aus dem Plot (Foto) durch Betrachtung entnommen. Das klappt auch, wobei dort noch 1-2 Ausreißer bleiben, die noch in dem Intervall sind und somit nicht kleiner bzw. größer.

Jetzt würde ich gerne die entfernten Werte durch eine (lineare) Interpolation ersetzen..
wie könnte ich dies tun?

plot1.png
 Beschreibung:

Download
 Dateiname:  plot1.png
 Dateigröße:  41.25 KB
 Heruntergeladen:  197 mal
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.432
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 16.12.2019, 09:02     Titel:
  Antworten mit Zitat      
Hallo,

mit dem bisherigen Ansatz ist das Problem, dass man nicht mehr weiß, wo die Ausreißer waren.

Vorschlag:
Code:
v(v < -2890) = NaN;
v(v >  2300) = NaN;
missing = isnan(v);
x = 1:numel(v);
v(missing) = interp1(x(~missing), v(~missing), x(missing))


Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
twooping
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 20.11.18
Wohnort: ---
Version: R2019b
     Beitrag Verfasst am: 16.12.2019, 10:14     Titel:
  Antworten mit Zitat      
Danke, Harald! Das hat gut geklappt.

Ich hätte noch eine weitere Frage...
Hast du vielleicht einen Tipp, wie ich die restlichen Ausreißer (siehe Foto) rausnehmen könnte? Sie sind kleiner als die von mir oben genannten Werte. Jedoch würde ich beim ändern der Intervalle andere Werte mit löschen, die ich nicht löschen bzw. verändern möchte :/

2.png
 Beschreibung:

Download
 Dateiname:  2.png
 Dateigröße:  60.49 KB
 Heruntergeladen:  188 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.432
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 16.12.2019, 10:54     Titel:
  Antworten mit Zitat      
Hallo,

eine Frage ist immer: was sind eigentlich Ausreißer und was nicht? Insbesondere zwischen 4.5 und 5 ist mir das nicht klar.

Statt auf die Werte an sich kann man auch auf die Änderung von Werten gehen:
abs(diff(v)) > schwellwert
Das Problem daran ist aber, wie man mit mehreren Ausreißern am Stück umgehen kann.

In MATLAB gibt es seit ein paar Releases auch Funktionen dazu: isoutlier und filloutliers .

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) 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.