Plotten von Sprungprozessen < Matlab < Mathe-Software < Mathe < Vorhilfe
|
Hallo zusammen,
ich möchte in MATLAB bestimmte Sprungprozesse simulieren und bin mit dem Ergebnis auch sehr zufrieden. Bloß wenn ich diese plotte, dann verbindet MATLAB die Sprünge, damit wird der Eindruck geweckt es wären stetige Prozesse... Wie kann ich denn MATLAB anweisen, nicht die großen senkrechten Verbindungslinien zu zeichnen.
Danke schonmal!
lg Kai
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 01:51 So 10.06.2012 | Autor: | leduart |
Hallo
plotte stückweise.
gruss leduart
|
|
|
|
|
Hmm.. und wie kann ich das machen?
Ich kenne nur plot(x,y) mit 2 Vektoren x und y...
lg Kai
|
|
|
|
|
>
> Hmm.. und wie kann ich das machen?
> Ich kenne nur plot(x,y) mit 2 Vektoren x und y...
>
> lg Kai
>
Hi Kai,
ich würde es folgendermaßen machen:
Plotte erst den ersten Abschnitt, benutze dann "hold on", und plotte dann den nächsten Abschnitt. Hier ein einfaches Beispiel:
1: | t=1:10; u=10:20;
| 2: | plot(t,t.^2);
| 3: | hold on
| 4: | plot(u,-u); |
Ergebnis:
[Dateianhang nicht öffentlich]
(Wenn ich mir den Plot in meinem Plot-Fenster anschaue, dann beginnt der zweite Teil übrigens ordnungsgemäß bei 10 und nicht erst bei 11. Das muss wohl ein Problem mit der png-Ausgabe sein.)
Ich bin mir aber sicher, es gibt elegantere Lösungen, deswegen stelle ich mal auf "teilweise beantwortet".
Ich habe das ganze in Ermangelung von MATLAB übrigens nur mit Octave getestet, aber es würde mich schwer wundern, wenn das nicht auch mit MATLAB so funktionieren würde...
Dateianhänge: Anhang Nr. 1 (Typ: png) [nicht öffentlich]
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 23:42 Mo 11.06.2012 | Autor: | Marcel |
Hallo,
>
> Hmm.. und wie kann ich das machen?
> Ich kenne nur plot(x,y) mit 2 Vektoren x und y...
>
> lg Kai
googel mal nach "matlab, piecewise functions". Oder so:
Beispiel, Seite 50 (Auf Druckversion klicken!)
Oder so:
Beispiel 2: Dort auf Solution klicken!
P.S.
Es kann sein, dass in Matlab $irgendwas [mm] \*(x \le [/mm] -2)$ mathematisch sowas wie [mm] $irgendwas\*1_{(-\infty,-2]}(x)$ [/mm] bedeutet. Die Funktion [mm] $1_{(-\infty,-2]}$ [/mm] ist die Indikatorfunktion auf [mm] $(-\infty,-2]\,.$ [/mm] Also, wenn Du die Beispiele genau verstehen willst, kannst Du Dich da ja mal schlau machen. Andernfalls ist es halt sowas wie eine Syntax für eine gewisse if-Abfrage.
Gruß,
Marcel
|
|
|
|
|
Ersteinmal Danke für die umfangreiche Antwort.
Mein Problem ist, dass ich nie weiß wann ein Sprung kommt... Ich simuliere zufällige Trajektorien. Es sind praktisch immer irgendwie Sprünge, nur sehr kleine. Rauskommen soll eine Art Punktemenge, nie wirklich stetig.
Habt ihr da eine Idee?
lg Kai
|
|
|
|
|
moin,
so?
[Dateianhang nicht öffentlich]
1: | x(1)=0;
| 2: | for i=2:20
| 3: | x(i)=x(i-1)+rand();
| 4: | end
| 5: | y=1:20;
| 6: | hold on;
| 7: | for i=1:n-1
| 8: | line([x(i) x(i+1)],[y(i) y(i)]);
| 9: | plot(x(i),y(i),'o','Markersize',1.5,'MarkerFaceColor',[.49 1 .63]);
| 10: | end
| 11: |
|
Falls du die Grafik dann in LaTeX verwendest, würde ich empfehlen mit Matlab den Quelltext für tikz , pstricks oder ähnliches erstellen, da dann auch die Schriftart stimmt.
Dateianhänge: Anhang Nr. 1 (Typ: png) [nicht öffentlich]
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 16:38 Fr 15.06.2012 | Autor: | wieschoo |
http://pastebin.com/DscRnyHy
ergibt in LaTeX
[Dateianhang nicht öffentlich]
Dateianhänge: Anhang Nr. 1 (Typ: png) [nicht öffentlich]
|
|
|
|
|
Danke erstmal wieschoo .
Aber das ist nicht das was ich meine...
Rauskommen soll eine reine Punktemenge, ohne dass die Punkte verbunden werden. Aber wenn ich nun plot(x,y,'.') nehme, dann sind die Punkte viel zu groß und es sieht aus wie eine Skizze mit Edding... Und wenn ich plot(x,y,':') nehme, dann weden die Sprünge wieder mit einer getrichelten Linie verbunden.
Ich habe (sehr viele) Punkte, und möchte diese einfach als kleine Punkte plotten. Wenn ich auch jeden Punkt einzeln plotte, mit
for i=1:length(y)
plot(x(1),y(i),'Erasemode','none')
end,
dann macht er das aber nicht (auch nicht mit hold on...).
Hat jemand da eine Idee?
Danke schonmal!
lg Kai
|
|
|
|
|
>
> Danke erstmal wieschoo .
Ist es nicht einfacher anzurufen?
>
> Aber das ist nicht das was ich meine...
So sehen bei mir Sprungprozesse aus.
>
> Rauskommen soll eine reine Punktemenge, ohne dass die
> Punkte verbunden werden. Aber wenn ich nun plot(x,y,'.')
> nehme, dann sind die Punkte viel zu groß und es sieht aus
> wie eine Skizze mit Edding... Und wenn ich plot(x,y,':')
Je nach Sehstärke kann die Punktgröße durch MarkerSize gesetzt werden.
plot(x,y,'.','MarkerSize',1)
plot(x,y,'.','MarkerSize',2)
....
Ich glaube 5 ist der Standardwert. Steht aber auch irgendwo.
|
|
|
|