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

Winkel ploten

 

Dagnabit
Forum-Century

Forum-Century


Beiträge: 244
Anmeldedatum: 23.04.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.07.2009, 13:10     Titel: Winkel ploten
  Antworten mit Zitat      
Hallo Community

Um die Änderungen von Winkelwerten darzustellen, plote ich diese Werte in einem einfachen 2D- Plot.
Die X- Achse entspricht dabei der Zeitachse und auf Y wird der dazugehörige Winkelwert aufgetragen.

Das Problem ist nun, dass bei Winkelwerten um Null manche Werte größer und andere kleiner Null sind. Werte kleiner Null werden jedoch wieder in positive Werte umgerechnet (z.B. -1° = 359°).
Beim normalen 2DPlot müssen die 'Limits' (XLim, YLim) immer aufsteigend sein.
Ich hätte es jedoch gerne, dass der Y- Plotbereich (YLim) z.B. von 358° - 2° geht.

Also etwas in der Art von

Code:
set( gca, 'YLim', [358 2])


Zur Veranschaulichung habe ich einen Plot angehängt. Die "Ausreißer" sind dabei die Werte < 0 also Werte <360°.

edit: habe besseres Bild reingestellt

HzPlot.jpg
 Beschreibung:

Download
 Dateiname:  HzPlot.jpg
 Dateigröße:  83.52 KB
 Heruntergeladen:  959 mal

_________________

lg
Martin
Private Nachricht senden Benutzer-Profile anzeigen


Andy386
Forum-Guru

Forum-Guru


Beiträge: 485
Anmeldedatum: 24.06.09
Wohnort: ---
Version: 7.1/8
     Beitrag Verfasst am: 27.07.2009, 13:26     Titel:
  Antworten mit Zitat      
naja, ich hab meine Werte mal -1 genommen, und dann den YTickLabel andersrum gedreht... schneller geht
Code:
set(gca,'Ydir','reverse')
Private Nachricht senden Benutzer-Profile anzeigen
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 27.07.2009, 13:28     Titel:
  Antworten mit Zitat      
Moin,

schau mal ob dir das hier weiterhilft: http://www.gomatlab.de/viewtopic,p,23363.html#23363

Gruß
Alex
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
Dagnabit
Themenstarter

Forum-Century

Forum-Century


Beiträge: 244
Anmeldedatum: 23.04.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.07.2009, 14:05     Titel:
  Antworten mit Zitat      
Danke erstmal für die Antworten

Mit Euren Vorschlägen komm ich da leider auch nicht weiter, da sie keinen Sprung von 359 auf 0 erlauben.

Die Messwerte "schwingen" um den tatsächlichen Wert (Messfehler, Punktbewegungen,..). Wenn der wahre Wert z.B. 123° ist, gibts mal Werte kleiner 123 (z.B. 122.9682) und mal welche die größer sind (z.B. 123. 4256).

Wenn diese Winkel aber um 0° herumtanzen, habe ich mal Werte kleiner 0 (z.B. 359.4568) und mal welche die größer sind (z.B. 0.2376).
_________________

lg
Martin
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.449
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 27.07.2009, 16:34     Titel:
  Antworten mit Zitat      
Rückfrage:
In welchem Bereich bewegt sich der Winkel? Gibt es sowas wie Überschläge? Falls beispielsweise Winkel > 345 Grad grundsätzlich aus einem Schwingen um 0 resultieren, könnte man sagen
Code:
winkel(winkel > 345) = winkel(winkel > 345)-360;


Falls es nicht so einfach ist, könnte man nachsehen, aus welcher Richtung der kritische Bereich (345 - 360 Grad) betreten wird... und wenn das von 0 kommt, wie oben abfangen.

Wenn es Überschläge gibt, dann wird es sich nicht vermeiden lassen, dass man entweder mit Winkeln > 360 Grad arbeitet oder mit Sprüngen lebt.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Dagnabit
Themenstarter

Forum-Century

Forum-Century


Beiträge: 244
Anmeldedatum: 23.04.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.07.2009, 18:53     Titel:
  Antworten mit Zitat      
Servus Harald

Zitat:
In welchem Bereich bewegt sich der Winkel? Gibt es sowas wie Überschläge?


Es kann jeder beliebige Winkel sein. Die Streuung der Winkelwerte resultiert aus der Messgenauigkeit des Instruments (Tachymeter) bzw. aus etwaigen Bewegungen des zu beobachtenden Punktes.

Ich werde dann wohl für Bereiche um die 0° mit dem Plotbereich von z.B. 355 - 365° arbeiten und mit YTickLabel experimentieren
_________________

lg
Martin
Private Nachricht senden Benutzer-Profile anzeigen
 
Andy386
Forum-Guru

Forum-Guru


Beiträge: 485
Anmeldedatum: 24.06.09
Wohnort: ---
Version: 7.1/8
     Beitrag Verfasst am: 28.07.2009, 22:04     Titel:
  Antworten mit Zitat      
Was meinst du denn mit Sprung ?
das 1 Grad wieder über 360 steht ?
mit asin(sin()) steht zumindest die 359 unter der 0...

gib vielleicht ein Zahlenbeispiel und mal, wie's aussehen soll.
Private Nachricht senden Benutzer-Profile anzeigen
 
Dagnabit
Themenstarter

Forum-Century

Forum-Century


Beiträge: 244
Anmeldedatum: 23.04.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.07.2009, 09:11     Titel:
  Antworten mit Zitat      
Servus Andy

Also es kommt immer vor, das Winkelwerte um die 0° auftreten. z.B.:
0.0024
0.0018
0.0015
0.0012
0.0012
0.0012
359.9992
359.9987
0.0020
0.0015

Wenn ich das dann plote, werden alle Werte < 0° ( -1° !=! 359°) natürlich irgendwo knapp vor 360° geplotet (Die Ausreißer im Plot). (siehe Anhang- HzPlot0).



Was auch immer vorkommt, sind Winkelwerte irgendwo sonst auf dem Teilkreis. z.B.:

95.7997
95.7997
95.8002
95.8002
95.8002
95.8003
95.7990
95.8014
95.7995
95.8001

Das funktioniert einwandfrei, da kein "Sprung" von 359° auf 0° vorkommt. (siehe Anhang- HzPlot95)

Deinen Vorschlag mit asin(sin()) muss ich erst probieren. Danke für den Tip Smile.

HzPlot95.jpg
 Beschreibung:
Plot Winkel ~95°

Download
 Dateiname:  HzPlot95.jpg
 Dateigröße:  74.72 KB
 Heruntergeladen:  919 mal
HzPlot0.jpg
 Beschreibung:
Plot Winkel ~0°

Download
 Dateiname:  HzPlot0.jpg
 Dateigröße:  83.52 KB
 Heruntergeladen:  885 mal

_________________

lg
Martin
Private Nachricht senden Benutzer-Profile anzeigen
 
Andy386
Forum-Guru

Forum-Guru


Beiträge: 485
Anmeldedatum: 24.06.09
Wohnort: ---
Version: 7.1/8
     Beitrag Verfasst am: 29.07.2009, 15:13     Titel:
  Antworten mit Zitat      
Dagnabit hat Folgendes geschrieben:
Werte < 0° ( -1° !=! 359°)

Du sprichst in Rätseln... sind -1° nun ungleich 359° ? (!=) oder soll des so sein (=!) ? Wieso beides ?
Private Nachricht senden Benutzer-Profile anzeigen
 
Dagnabit
Themenstarter

Forum-Century

Forum-Century


Beiträge: 244
Anmeldedatum: 23.04.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.07.2009, 17:03     Titel:
  Antworten mit Zitat      
Servus Andy

Zitat:
Du sprichst in Rätseln... sind -1° nun ungleich 359° ? (!=) oder soll des so sein (=!) ? Wieso beides ?


Eigentlich soll das ! auf dem = stehen und "entspricht" bedeuten; also 359° = -1°.


Ich habe das Problem jetzt (zwar etwas umständlich/ aufwendig) gelöst.

Und zwar plotte ich jetzt im Falle das Werte um 0 anfallen (-> Sprünge von 359° über 0° auf 1°) die Werte im vierten Quadranten als negative Winkel (359° = -1°).

Die Plotbeschriftung erfolgt dann "benutzerdefiniert" mit dem 'YTickLabel'- property.
Und zwar baue ich mir als Beschriftung die Zahlenwerte zu Strings um und übergebe diese 'YTickLabel'. Wenn Zahlenwerte negativ sein sollten, addiere ich einfach 360 und 'num2str'e erst dann.
'YTickLabel' kam übrigens eh von Dir, obwohl Du das vermutlich anders gemeint hattest. Idea


Um zu zeigen, wie die Sache jetzt aussieht, hab einen Screenshot angehängt.

Und Danke auch an alle anderen für ihre Vorschläge.

HzPlot0_ok.jpg
 Beschreibung:

Download
 Dateiname:  HzPlot0_ok.jpg
 Dateigröße:  39.26 KB
 Heruntergeladen:  937 mal

_________________

lg
Martin
Private Nachricht senden Benutzer-Profile anzeigen
 
Andy386
Forum-Guru

Forum-Guru


Beiträge: 485
Anmeldedatum: 24.06.09
Wohnort: ---
Version: 7.1/8
     Beitrag Verfasst am: 30.07.2009, 12:37     Titel:
  Antworten mit Zitat      
dacht ich mirs doch Wink

warum ist dass denn in deinem plot bei 399 zu Ende ?

Ging asin(sin()) nicht ?
Private Nachricht senden Benutzer-Profile anzeigen
 
Dagnabit
Themenstarter

Forum-Century

Forum-Century


Beiträge: 244
Anmeldedatum: 23.04.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.07.2009, 13:32     Titel:
  Antworten mit Zitat      
Servus Andy

Das mit asin(sin()) hab ich ehrlich gesagt gar nicht probiert.

Die 399 sind gon (Neugrad).
Die gemessenen Werte kann man in meinem Prgramm in Radiant, Altgrad (°) und Neugrad (gon) darstellen.
pi() = 180° = 200gon oder 2*pi() = 360° = 400gon
_________________

lg
Martin
Private Nachricht senden Benutzer-Profile anzeigen
 
Andy386
Forum-Guru

Forum-Guru


Beiträge: 485
Anmeldedatum: 24.06.09
Wohnort: ---
Version: 7.1/8
     Beitrag Verfasst am: 30.07.2009, 14:26     Titel:
  Antworten mit Zitat      
Achso, neumodischer Schnickschnack Very Happy

Dagnabit hat Folgendes geschrieben:
Das mit asin(sin()) hab ich ehrlich gesagt gar nicht probiert.

Evil or Very Mad böse, böse
Wink
Private Nachricht senden Benutzer-Profile anzeigen
 
Dagnabit
Themenstarter

Forum-Century

Forum-Century


Beiträge: 244
Anmeldedatum: 23.04.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.07.2009, 14:41     Titel:
  Antworten mit Zitat      
Servus Andy

Zitat:
Dagnabit hat Folgendes geschrieben:
Zitat:
Das mit asin(sin()) hab ich ehrlich gesagt gar nicht probiert.


Evil or Very Madböse, böse
Wink



Das Problem lag ja nicht beim Umherrechnen der Winkel, sondern beim Plot selbst.
Ich musste Matlab irgendwie verklickern, dass 359 unter 0 steht. Normalerweise ist der Plot immer aufsteigend beschriftet ( ... -2 -1 0 1 2 ...).
Ich will aber mit einem "Sprung" in der Skala ( ... 358 359 0 1 2 ...).
_________________

lg
Martin
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 - 2024 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.