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

Strich zeichnen - nicht ganz einfach ;)

 

Chris_toph
Forum-Anfänger

Forum-Anfänger


Beiträge: 42
Anmeldedatum: 10.04.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.07.2013, 14:45     Titel: Strich zeichnen - nicht ganz einfach ;)
  Antworten mit Zitat      
Hallo,

ich möchte einen Strich zeichnen, wie hier:



Mein Problem: Ich will den Strich nicht mit Punkten vorgeben, sondern wirklich dass er als Achse oder so gezeichnet wird. Denn wenn ich

plot([1,1],[-3,3])

schreibe (mit Hold all before), dann macht er mir zwar den Strich, aber wenn jetzt angenommen sich die Werte ändern, dann ist er beispielsweise zu kurz). Z.B. wenn ein Wert jetzt +5 oder so annimmt, geht die Figure nach oben, und mein Strich ist zu kurz.

Ich glaube meine Frage heißt: Wie zeichne ich einen fixen, permananten Strich durch eine bestehnde Figure, die NUR an der X-Achse fixiert ist? Der Wert an der X-Achse ist fix, aber y variert leider. Und das sollte mein Strich auch! Smile

danke
Private Nachricht senden Benutzer-Profile anzeigen


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 17.07.2013, 14:54     Titel:
  Antworten mit Zitat      
wie kann denn nach dem plotten mit einmal ein wert spontan größer werden ? ^^
wenn du die linie nach dem plotten der daten einzeichnest weist du doch bis wo deine achsen gehen( min max etc) dann ist es doch kein problem die linie auch in diesen grenzen zu malen oder wo liegt das problem ?
Code:
x=-10:0.1:10;
y=x.^2+2*x;
plot(x,y)
ylim([min(y),max(y)])
hold on
plot([1,1],[min(y),max(y)],'black')
Private Nachricht senden Benutzer-Profile anzeigen
 
Chris_toph
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 42
Anmeldedatum: 10.04.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.07.2013, 15:21     Titel:
  Antworten mit Zitat      
Winkow hat Folgendes geschrieben:
wie kann denn nach dem plotten mit einmal ein wert spontan größer werden ? ^^
wenn du die linie nach dem plotten der daten einzeichnest weist du doch bis wo deine achsen gehen( min max etc) dann ist es doch kein problem die linie auch in diesen grenzen zu malen oder wo liegt das problem ?
Code:
x=-10:0.1:10;
y=x.^2+2*x;
plot(x,y)
ylim([min(y),max(y)])
hold on
plot([1,1],[min(y),max(y)],'black')


Naja, wie ich gesagt habe die Werte sind variabel. So wie Du es mir jetzt gezeigt hast, könnte ich es universell einsetzen. Mit meiner Methode wäre ich heute glücklich für 5min, für den nächsten Graphen passt es aber nicht mehr (sind viele Graphen, daher mein Wunsch nach universellen Lösungen)

Aber ich wollte eigentlich eine Funktion, die werteunabhängig ist. Bei meinen Graphen habe ich leider keine Funktion Y, weshalb ich auch das ylim nicht richtig anwenden kann. Ich plote Punkte, und die Punkte sind nicht das Maximum von y, falls Du verstehst auf was ich raus möchte? Der Punkt hört vielleicht 1/6 vor Ende der Y-Achse auf.

Schwierig schwierig. Confused Dass es da keinen Plotbefehl für die y-Achse gibt?
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 17.07.2013, 15:34     Titel:
  Antworten mit Zitat      
Zitat:
falls Du verstehst auf was ich raus möchte?

eigentlich nicht. warum kennst du deine punkte die du plotten willst nicht vor dem plotten? werden die life generiert und du guckst dann zu wie er die malt oder wat?
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 17.07.2013, 15:42     Titel:
  Antworten mit Zitat      
Hallo

du kannst z.B. folgendes machen

handle von dem Strich schnappen, und dann den Y-Wert anpassen:

Code:

h = plot([1,1],[-3,3])

set(h, 'YData',[-5, 5])
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Chris_toph
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 42
Anmeldedatum: 10.04.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.07.2013, 15:48     Titel:
  Antworten mit Zitat      
Winkow hat Folgendes geschrieben:
Zitat:
falls Du verstehst auf was ich raus möchte?

eigentlich nicht. warum kennst du deine punkte die du plotten willst nicht vor dem plotten? werden die life generiert und du guckst dann zu wie er die malt oder wat?


Ich kenne meine Punkte sehr wohl. Das Maximum in Y-Achse (also der höchste Punkt auf der Y-Achse) ist aber nicht gleichzusetzten mit dem Endstrich, den Matlab oben drüberzeichnet.



So, ist es jetzt verständlich, was ich will? Ich will mich nicht an den Punkten die ich zeichne orientieren, es muss doch eine Funktion die ein "Maximum" oder ein definiertes Ylim für diesen Plot vorsieht?

Sad

Im Bild 2 ist dargestellt, wie es nach Deiner Lösung aussehen würde. Das ist nicht das was ich möchte.
Private Nachricht senden Benutzer-Profile anzeigen
 
Chris_toph
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 42
Anmeldedatum: 10.04.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.07.2013, 15:49     Titel:
  Antworten mit Zitat      
denny hat Folgendes geschrieben:
Hallo

du kannst z.B. folgendes machen

handle von dem Strich schnappen, und dann den Y-Wert anpassen:

Code:

h = plot([1,1],[-3,3])

set(h, 'YData',[-5, 5])
 


Danke, probier ich gleich mal aus!
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 17.07.2013, 15:58     Titel:
  Antworten mit Zitat      
Hallo

das kannst du auch sogar mit ylim verknüpfen, und das automatisch anpassen, nachdem neu Punkte geplotet wurden

Code:

h = plot([1,1],[-3,3])



ydatanew = get(gca,'YLim')

set(h, 'YData',ydatanew)
 
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 17.07.2013, 16:01     Titel:
  Antworten mit Zitat      
Zitat:
Im Bild 2 ist dargestellt, wie es nach Deiner Lösung aussehen würde. Das ist nicht das was ich möchte.

würde es nicht da ich ja mit ylim festgelegt habe wie weit die achsen gehen. du solltest meine lösung nochmal genau angucken.
Private Nachricht senden Benutzer-Profile anzeigen
 
Chris_toph
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 42
Anmeldedatum: 10.04.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.07.2013, 16:01     Titel:
  Antworten mit Zitat      
Winkow hat Folgendes geschrieben:
Zitat:
Im Bild 2 ist dargestellt, wie es nach Deiner Lösung aussehen würde. Das ist nicht das was ich möchte.

würde es nicht da ich ja mit ylim festgelegt habe wie weit die achsen gehen. du solltest meine lösung nochmal genau angucken.


Stimmt. Danke! Wink
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.