|
|
lokale Extrempunkte in Array finden mit Einschränkung |
|
cey |

Forum-Fortgeschrittener
|
 |
Beiträge: 69
|
 |
|
 |
Anmeldedatum: 16.03.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 12.05.2011, 20:17
Titel: lokale Extrempunkte in Array finden mit Einschränkung
|
 |
Hallo zusammen. ich hoffe ihr könnt mir bei meinem Problem helfen. Ich möchte gerne in einem Array die lokalen Extremwerte bestimmen. Dazu habe ich folgenden Code:
Wenn ich das Array plotte, sieht das so aus:
Die blauen Punkte sind die Hochpunkte, die ich suche, und die roten die Tiefpunkte.
Mit dem obigen Code funktioniert das ja nicht. An den Stellen wo die Funktion kurz abfällt und dann wieder ansteigt, wird mir ja ein Minimum berechnet. Das möchte ich vermeiden. Aber an der Stelle wo die Funktion ansteigt, so bleibt und dann wieder abfällt, hätte ich gerne 2 Maxima.
Kann mir jemand von euch helfen?
Ich bin jetzt in Matlab kein Ass, deshalb habe ich damit so meine SChwierigkeiten und bekomme das nicht hin.
Gruß
cey
|
|
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 12.05.2011, 23:15
Titel: Re: lokale Extrempunkte in Array finden mit Einschränkung
|
 |
Hallo cey,
Die Daten und das Diagram passen nicht zusammen.
Du möchtest also "kleine" Abweichungen ignorieren. Kannst Du denn mathematisch definieren, was "klein" ist? Ist die Abweichung relativ oder absolut?
Gruß, Jan
|
|
|
cey |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 69
|
 |
|
 |
Anmeldedatum: 16.03.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.05.2011, 09:09
Titel: Frage
|
 |
Also klein ist, wenn der Abstand nur einen Schritt auf der x-Achse beträgt. Also wenn der Vektor x=(1 2 3 4 5 6 7 ...) ist, ist der abstand 1.
|
|
|
cey |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 69
|
 |
|
 |
Anmeldedatum: 16.03.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 18.05.2011, 08:31
Titel: Extremwerte bestimmen
|
 |
Also mit klein meine ich, wenn die Differenz zwischen 2 y-werten nur eine Schrittweite auf der x-Achse beträgt. Wenn man die Werte in dem Vektor betrachtet, den ich angegeben habe, jetzt unabhängig von der Grafik, dann ist Der minimale Abstand 1 den ich ignorieren möchte.
Hat irgendjemand eine Idee?
Gruss
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 18.05.2011, 14:40
Titel: Re: Extremwerte bestimmen
|
 |
Hallo cey,
Ich zögere immer noch nach einer Lösung zu suchen, weil Dein erster Post ein Diagramm enthält, das einfach nicht zu den geposteten Daten passt.
"Eine Schrittweite auf der x-Achse" ist auch nicht klar definiert: Meinst Du den Spalten-Index oder den X-Wert?
Ich kann die Beschreibung Deines Problems deshalb nicht nachvollziehen.
Gruß, Jan
|
|
|
cey |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 69
|
 |
|
 |
Anmeldedatum: 16.03.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 18.05.2011, 15:44
Titel: geänderte Werte
|
 |
hallo jan,
also ich habe jetzt mal grafik und werte angepasst.
t =[0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18];
x= [-2 -2 0 1 2 2 1 2 2 1 0 -1 -2 -1 0 -1 -1 -2 0];
das mit der schrittweite meine ich so:
der x(4)=2 und einen schritt auf der t-achse weiter x(5)=2. ich hoffe das ist diesmal verständlicher.
die blauen punkte sind meine gesuchten maxima und die roten die gesuchten minima.
ich hoffe du kannst mir da helfen.
gruß[/img]
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 18.05.2011, 20:36
Titel: Re: geänderte Werte
|
 |
Hallo cey,
Wieso sind die ersten beiden Punkte kein Minimum, obwohl der letzte Punkt als Maximum akzeptiert wird?
Was passiert bei [0, 1, 0, 1, 0, 1] ?
Was passiert bei [0, 3, 1, 2, 1, 3, 0] ?
Ich würde erst mal ein FOR-Schleife erstellen und die Extremwerte suchen. Das geht zwar per DIFF schneller, aber vielleicht kommt es ja auf die 1000stel Sekunde nicht an:
Nun wird es komplizierter: Du möchtest diejenigen Maxima verwerfen, die nur einen Schritt von einem Minimum entfernt liegen - und umgekehrt. Bei [0,1,0,1,0] ist das aber nicht eindeutig: Verschwinden die Minima oder die Maxima?! Das muss zunächst eindeutig definiert sein.
Gruß, Jan
|
|
|
cey |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 69
|
 |
|
 |
Anmeldedatum: 16.03.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 08.06.2011, 09:35
Titel:
|
 |
Hallo Jan,
sorry, dass ich mich jetzt erst melde.
Also ich erkläre nochmal was ich möchte:
Meine Funktion sieht im oberen Bereich ungefähr so aus
Das Problem bei der Bestimmung dieser Werte ist folgendes:
Wenn es so stufig hoch und runter geht, funktioniert das nicht richtig.
Hast du da vielleicht ne Idee?
Gruß
cey
|
|
|
|
|
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
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| 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.
|
|