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 von Pfeilen anstelle von Linien

 

n.force
Forum-Century

Forum-Century


Beiträge: 118
Anmeldedatum: 02.03.12
Wohnort: nähe Magdeburg
Version: ---
     Beitrag Verfasst am: 19.06.2015, 09:16     Titel: Plot von Pfeilen anstelle von Linien
  Antworten mit Zitat      
Guten Morgen,

ich habe eine Frage, von der ich eigentlich dachte, dass sie mit googlen ganz schnell beantwortet sein sollte.
Dem ist aber leider nicht so.

Ich plotte gerade viele Positionskoordinaten. Diese Koordinaten stellen Straßen dar.
Die Reihenfolge der Daten bestimmt die erlaubte Fahrtrichtung.

Die Frage ist nun, wie kann ich beim plotten die Punkte nicht mit linien, sondern mit Pfeilen verbinden?

Das Einzige was ich fand, ist der Befehl
Code:


aber das scheint mir sehr aufwendig.

Also als Beispiel diese Punkte mit Pfeilen verbinden:
Code:
plot([1 2 3 4],[1 2 2 4])


Hat jemand eine Idee ???
Private Nachricht senden Benutzer-Profile anzeigen


Knygs
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 58
Anmeldedatum: 26.03.15
Wohnort: ---
Version: 2015b, 2017a, 2021a
     Beitrag Verfasst am: 19.06.2015, 10:06     Titel:
  Antworten mit Zitat      
Hi n.force,

quiver(x1,y1,dx,dy) ist doch eine gute Möglichkeit.

die vektoren x1 und x2 sind jeweils deine Startpunkte der Pfeile und dx und dy wie weit sie jeweils in x und y Richtung gehen sollen. Das kannst du mit einer Differenz aus den auseinanderfolgenden Elementen schnell ausrechnen und anschließend alles an quiver() übergeben.
In deinem Beispiel sehen die Vektoren dann so aus, wenn ich mich nicht täusche

Code:
Koordinaten=[1 2 3 4;...   %x-punkte
1 2 2 4];  %y-punkte
x1=[0 Koordinaten(1,1:end-1)];
y1=[0 Koordinaten(2,1:end-1)];
dx=Koordinaten(1,:)-x1;
dy=Koordinaten(2,:)-y1;
quiver(x1,y1,dx,dy,0)



vg Knygs
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

hier sollte doch was dabei sein?
http://de.mathworks.com/matlabcentr.....=%E2%9C%93&term=arrow

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
n.force
Themenstarter

Forum-Century

Forum-Century


Beiträge: 118
Anmeldedatum: 02.03.12
Wohnort: nähe Magdeburg
Version: ---
     Beitrag Verfasst am: 19.06.2015, 10:19     Titel:
  Antworten mit Zitat      
Hi,

danke für die schnelle Antwort.
Leider kann ich das irgendwie nicht auf mein Problem übertragen.

Ich habe mal die Daten für longitude und latitude angehängt.
Jede Zeile repräsentiert einen Weg.

Ich bekomme immer die Fehlermeldung: Matrix dimension must agree.
Das verstehe ich nicht.

values.zip
 Beschreibung:

Download
 Dateiname:  values.zip
 Dateigröße:  1.27 KB
 Heruntergeladen:  290 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

bitte noch den Code zur Verfügung stellen, der die Fehlermeldung produziert.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
n.force
Themenstarter

Forum-Century

Forum-Century


Beiträge: 118
Anmeldedatum: 02.03.12
Wohnort: nähe Magdeburg
Version: ---
     Beitrag Verfasst am: 19.06.2015, 10:36     Titel:
  Antworten mit Zitat      
sehr gerne:


Code:
x1=[lon_short(1,1:4)];
y1=[lat_short(1,1:4)];
dx=lon_short(1,:)-x1;
dy=lat_short(2,:)-y1;
quiver(x1,y1,dx,dy)



bis zur 4. Spaltre habe ich erstmal gemacht um die NaN´s zu umgehen.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

sehr großzügig :)
Schau dir doch mal die Dimensionen von lon_short(1,:) und x1 an. Das eine sind 45 Werte, das andere 4 Werte. Wie soll man nun 4 Werte von 45 Werten abziehen?

Durchlaufen würde z.B.
Code:
x1=[lon_short(1,1:4)];
y1=[lat_short(1,1:4)];
dx=lon_short(1,1:4)-x1;
dy=lat_short(2,1:4)-y1;
quiver(x1,y1,dx,dy)


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
n.force
Themenstarter

Forum-Century

Forum-Century


Beiträge: 118
Anmeldedatum: 02.03.12
Wohnort: nähe Magdeburg
Version: ---
     Beitrag Verfasst am: 19.06.2015, 11:04     Titel:
  Antworten mit Zitat      
Korrekterweise muss bei dy die 2 durch eine 1 ersetzt werden.

Code:
x1=[lon_short(1,1:4)];
y1=[lat_short(1,1:4)];
dx=lon_short(1,1:4)-x1;
dy=lat_short(1,1:4)-y1;
quiver(x1,y1,dx,dy)


Es läuft zwar durch, aber der plot ist leer.
Ich verstehe es nicht..
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 19.06.2015, 12:13     Titel:
  Antworten mit Zitat      
Hallo,

schau dir doch dx und dy an. Du produzierst da Pfeile der Länge 0.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Knygs
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 58
Anmeldedatum: 26.03.15
Wohnort: ---
Version: 2015b, 2017a, 2021a
     Beitrag Verfasst am: 19.06.2015, 12:56     Titel:
  Antworten mit Zitat      
Dein Plot ist deshalb leer, weil du zweimal das gleiche voneinander abziehst.
x1 ist ja genau das, was vor dem Minus steht.

du musst schon die Differenz aus aufeinanderfolgenden Werten nehmen

Code:
x1=[lon_short(1,1:4)];
y1=[lat_short(1,1:4)];
dx=lon_short(1,2:5)-x1;
dy=lat_short(1,2:5)-y1;
quiver(x1,y1,dx,dy,0)


vg

edit: oh, zu spät gesehen, das harald schon geantwortet hat...
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 - 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.