Schnittpunkt einer Geraden mit einem plot aus einer sehr großen Wertetabelle ermitteln

98 ビュー (過去 30 日間)
Hallo liebe Community,
ich habe eine Frage zu meinem Matlab Skript. Ich möchte die Entfernung von einem (mir bekannten) Punkt in der Nordsee in eine bestimmte Richtung (Windrichtung) zur Nordseeküste ermitteln. Dazu habe ich eine Geradengleichung aufgestellt, die durch den Punkt in der Nordsee läuft und die Steigung der gewünschten Richtung hat. Mit dem Befehl geoplot habe ich auch die Silhouette der Nordseeküste, jedoch kann ich den Schnittpunkt mit dieser nicht ermitteln (oder geht das doch?). Deshalb habe ich mir in mühsamer Arbeit ~950 Koordinatenpaare rausgeschrieben, um die Nordseeküste nachzubilden. Wenn ich mir diese Werte dann mit plot mit einer geraden Linie zwischen den einzelnen Punkten anzeigen lasse, sieht das auch sehr gut aus. Jedoch kann ich keine Schnittpunkte ermitteln, wenn die Werte aus meiner Wertetabelle nicht genau von der Geraden getroffen werden. Die Wertetabelle ist auch leider so aufgebaut, dass curve fitting oder interp1 nicht funktionieren, da einige x-Werte mehrfach vorkommen.
Ich hatte mal versucht, die Ostfrisischen Inseln durch eine einzige Gerade anzunähern und dann den Schnittpunkt auszurechnen, das hat auch sehr gut funktioniert, ist aber in Richtung Osten nur etwa bis Wangerooge genau genug. Dabei habe ich meine x-werte sehr genau definiert und dann y1-y2 gerechnet und den y- und x-Wert an der Stelle ermittelt, wo die Subtraktion den kleinsten Wert angenommen hat. Das hat auch funktioniert, aber jetzt komme ich in der Bucht von Wilhelmshaven/Bremerhaven und den Nordfrisischen Inseln nicht weiter. Daher wende ich mich an euch, in der Hoffnung, dass es eine allgemeine Lösung mit meiner großen Wertetabelle gibt.
Vielen Dank schon einmal im voraus!
MFG
Nordseeküste

採用された回答

Harald
Harald 2023 年 7 月 11 日
編集済み: Harald 2023 年 7 月 11 日
Hallo,
bei solchen Fragen bitte generell Beispieldaten und bisherigen Code zur Verfügung stellen, damit man darauf aufbauen und Vorschläge ausprobieren kann. Verschiedene Ansätze:
  1. Die Koordinatenpaare so in Abschnitte unterteilen, dass keine doppelten x-Werte vorkommen.
  2. x-Werte und y-Werte getrennt interpolieren als Funktion einer Zeit / eines Index. So bekommt man quasi eine 2D-Trajektorie.
Bei geoplot sehe ich nur die Möglichkeit, den Schnittpunkt interaktiv durch Zoomen zu ermitteln. Für den einmaligen Gebrauch wäre das mein bevorzugter Weg. Wenn das aber für 100 oder 1000 solcher Geraden gemacht werden soll, dann nicht mehr. :D
Viele Grüße,
Harald

その他の回答 (0 件)

製品


リリース

R2020a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!