|
|
Vektor mit äquidistanten Werten |
|
skewcrap |

Forum-Anfänger
|
 |
Beiträge: 33
|
 |
|
 |
Anmeldedatum: 22.03.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 12.04.2013, 14:06
Titel: Vektor mit äquidistanten Werten
|
 |
|
 |
|
Hallo
Hatte ein wenig Mühe einen aussagekräftigen Titel zu finden, ich entschuldige mich dafür.
Ich habe eine Matrix mit Dimension mx2. Es handelt sich um x,y Koordinatenpunkte die eine Linie ergeben!
Mein Problem ist, dass diese Punkte sehr ungleichmässig verteilt sind. Am Anfang der Linie sind die Punkte extrem nah beinander, am Ende der Linie sind sie weiter entfernt.
Ich habe ein Script welches mir diese Punkte generiert. Ich verzichte hier auf Details, da es recht umfangreich würde.
Ich kann die Auflösung beliebig wählen, wenn ich diese so wähle dass sie am Ende der Linie hoch genug ist, dann sind die Punkte am Anfang jedoch viel zu dicht beinander.
Ich suche also eine Möglichkeit gewisse Elemente des Vektors zu löschen, damit die Distanz zwischen den Punkten ungefähr gleich ist.
Kann mir jemand einen Tip geben, wie ich das mit Matlab am besten bewerkstelligen könnte?
Ich hoffe meine Beschreibung war verständlich!
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 12.04.2013, 15:04
Titel:
|
 |
Hallo,
am besten wäre es natürlich, die Wahl der Auflösung in deinem Skript so anzupassen, dass von vorneherein nur die gewünschten Punkte erzeugt werden.
Sind die Punkte in der "richtigen" Reihenfolge (z.B. von links nach rechts) angeordnet?
Sind die Punkte nach einem bestimmten Muster verteilt, z.B. so, dass sie auf einer logarithmischen Skala gleichmäßig verteilt wirken würden?
Grundsätzlich kannst du:
- beim ersten Punkt anfangen
- den nächsten Punkt suchen, der die gewünschte Entfernung hat, und alle dazwischen rausschmeißen.
- den vorherigen Schritt wiederholen, bis du beim letzten Punkt angelangt bist.
Grüße,
Harald
|
|
|
skewcrap |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 33
|
 |
|
 |
Anmeldedatum: 22.03.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 12.04.2013, 15:20
Titel:
|
 |
Am Script kann ich nicht viel ändern, die Kurve wird durch eine Parametrisierung erzeugt. Der Parameter für die Parametrisierung wird äquidistant gewählt, die Punkte die rauskommen sind aber nicht mehr äquidistant!
Die Punkte sind monoton steigend von A nach B und zwar für beide Koordinaten.
Gibt es keine Funktion in Matlab die man verwenden könnte?
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 12.04.2013, 15:29
Titel:
|
 |
Hallo,
Zitat: |
Gibt es keine Funktion in Matlab die man verwenden könnte? |
Man könnte natürlich interpolieren (interp1), aber das willst du wohl nicht. Eine Funktion, die genau das macht, was du nach meinem Verständnis möchtest, ist mir nicht bekannt. Da müsste man also selbst ein paar Zeilen Code schreiben.
Grüße,
Harald
|
|
|
skewcrap |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 33
|
 |
|
 |
Anmeldedatum: 22.03.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 12.04.2013, 15:37
Titel:
|
 |
Nein, interpolieren geht nicht! Dann muss ich mich wohl oder übel mal dran setzen und eine Funktion basteln!
|
|
|
skewcrap |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 33
|
 |
|
 |
Anmeldedatum: 22.03.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 17.04.2013, 11:50
Titel:
|
 |
Habe das ganze nun folgendermassen gelöst:
|
|
|
|
|
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.
|
|