Verfasst am: 21.11.2016, 15:44
Titel: Abschnittsweiser Plot von Funktionen (fplot)
Guten Tag,
Durch eine Rechenoperation erhalte ich einen Vektor. Jeder ungerade indizierter Eintrag soll mit Funktion 1, jeder gerade indizierter Eintrag soll mit Funktion 2 abschnittsweise geplottet werden.
Funktion 1 hat die Form: f=x+x^0.321
Funktion 2 hat die Form: f=x+2*(x/2)^0.321
Von meiner Idee her müsste das gemäß "Specify Plotting Interval and Plot Piecewise Functions" https://de.mathworks.com/help/matlab/ref/fplot.html folgendermaßen aufgebaut sein: (in diesem Fall erstmal ohne Schleife)
Code:
v=[v1,v2,v3,v4,...];
fplot(funktion1,[0,v(1)],'b') hold on
fplot(funktion2,[v(1),v(2)],'b') hold off
grid on
Ich möchte, dass die Kurve aber zurückkehrt, wie im dargestellten Bild. Im prinzip soll dem Ende der ersten Kurve die zweite Kurve angeschlossen werden, dann aber umgekehrt laufen.
im dargestellten Bild qusi von 0 nach v1 und von v1 zurück nach 0.
bei fplot hast du ja keine Pfeile. Siehst du also, ob die Kurve von links nach rechts geht oder umgekehrt? Wenn nicht, dann siehe Jans Vorschlag.
Ansonsten bitte etwas mehr Details.
Die Funktion1 wird mit dem Wert v1 des Vektors ausgewertet.
Erhalte ersten Wert. Jetzt soll bis zu diesem Wert geplottet werden. Erhalte ersten Hysterese-Ast.
Nun wird die zweite Funktion mit dem nächsten Wert des Vektors ausgewertet. Diese Kurve soll nun bis zu dem ausgewerteten Wert geplottet werden und soll an dem Punkt anfangen, wo die erste Kurve aufgehört hat. Die zweite Kurve soll jedoch zurücklaufen oder wie in anderen Fällen nach unten laufen -> siehe Beispiel
Nochmal: Im fplot-Diagramm sieht man nur Linien, da macht es keinen Unterschied ob sie "hin" oder "zurück" laufen. Mathematisch ist das auch equivalent. Insofern sehe ich nicht, wieso mein Vorschlag Dein Problem nicht löst.
Wenn Du auf irgendwelchen Gründen wirklich unbedingt die X-Werte absteigend eingeben möchtest, benötigst Du ein anderes Tool als
fplot
.
Könntest du mir einen Hinweis geben wie ich dann eine solche Hysterese plotten könnte? Ich komme damit leider nicht weiter und weiß mir nicht zu helfen!
Also ich habe einen Vektor mit v=[600,-230,600,-320,450] z.b.
Alle positiven Werte sollen mit Funktion1 geplottet werden und alle negativen mit Funktion2. Wie schaffe ich das jetzt, dass dabei eine Hysterese rauskommt? Also sowas z.b.:
Nachtrag:
Mit folgendem Code:
Code:
v=[600,-230,600,-320,450] fplot(funktion1,sort([0,sigma(1)]),'b') hold on
fplot(funktion2,sort([sigma(1),sigma(2)]),'b') hold off
grid on
Ich kann es leider nicht ausprobieren und damit herum spielen, da ich die Funktionen nicht habe. Sind die Pfeile von Belang? Möchtest Du unbedingt
fplot
verwenden?
pfeile sind nicht unbedingt notwendig, könnten aber durchaus sinnvoll sein. Benutzen würde ich gerne alles was geht hauptsache ich komme auf das Ergebnis
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
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.