|
|
Funktion erklären. Code erklären |
|
t.b. |

Forum-Fortgeschrittener
|
 |
Beiträge: 60
|
 |
|
 |
Anmeldedatum: 02.03.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 15.08.2011, 10:09
Titel: Funktion erklären. Code erklären
|
 |
Hallo zusammen. ich habe im internet einen Code zur Bestimmung von Extremwerten und Nulldurchgängen gefunden, der auch ganz gut funktioniert. Nur leider verstehe ich nicht so ganz, was da genau passiert.
Vielleicht kann mir jemand von euch helfen?
Verstehe ganz besonders diesen Teil nicht:
Vielleicht hat einer von euch ne Idee?
Bin über jeden Tipp dankbar.
Gruß
|
|
|
|
|
mawi |

Forum-Century
|
 |
Beiträge: 106
|
 |
|
 |
Anmeldedatum: 14.04.11
|
 |
|
 |
Wohnort: Stuttgart
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 15.08.2011, 10:38
Titel:
|
 |
also das mit den Werten 2,110,100 etc... versteh ich auch nicht ganz...
Meiner Meinung nach hat die ganze erste if-Bedingung aber was mit der Erkennung von Wendepunkten zu tun...
|
|
|
t.b. |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 60
|
 |
|
 |
Anmeldedatum: 02.03.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 15.08.2011, 15:19
Titel:
|
 |
Genau das ist auch mein Problem.
Vielleicht kannst du mir ja nen Tipp geben, wie ich das selbst machen kann. ALso der Code macht ja unter anderem sowas:
Wenn ich extremwerte bestimme, und mehrere z.b. hochpunkte hab, die sich auf einer Ebene befinden, also alle die gleiche y-Kordinate haben, dann möchte ich gerne, dass von allen der mittlere genommen wird.
Hast du da ne Idee?
|
|
|
Gastxyz |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 15.08.2011, 16:29
Titel:
|
 |
|
 |
|
Also:
gz - greaterZero
lz - lowerZero
ez - equalZero
sind also Vektoren in denen die Differenz von Nachfolgewert und Wert größer, kleiner bzw gleich 0 sind.
hi ist ein Vektor, welcher die Vorzeichenwechsel von diff bestimmt.
hi ist genau an den Stellen 1, wo ein Wechsel von größer 0 zu kleiner 0 stattfindet.
hasCorner ist wahr, wenn es in ez Werte ungleich 0 gibt, es in x aufeinanderfolgende Werte gibt, welche gleich sind ("parallel zur X-Achse").
Wird nur in diesem Fall ausgeführt. Die ganzen double(...) sind wohl überflüssig und sollen nur zeigen, dass man hier mir logical Vektoren arbeitet, was Matlab aber auch automatisch merkt und umwandelt.
Diese beiden Teile gehören zu den Maximas, Hier werden alle Wechsel von gz nach ez bestimmt (steigend->gerade) und von ez nach lz (gerade->fallend). Bei einem "breiten" Maximum würde ein Teil des Vektors cornerVec so aussehen: ...0 1 0 0 0 0 2 0...
gehört entsprechend zu Minimas, die Faktoren 110 und 100 dienen zur Unterscheidung.
Ein "breites" Minimum hätte folgende Form: ... 0 100 0 0 0 0 110...
Sattelpunkte würden anders aussehen und nicht zu einem cornerType von 1 oder 10 führen (Maximum, Minimum).
Beispiel Sattelpunkt: .. 0 100 0 0 0 2 0...
Dieser Code sucht übrigens schon den "mittleren" Punkt heraus
|
|
|
|
|
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.
|
|