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

Punkte für Plot verbinden - keine Schleife möglich

 

KaiS
Forum-Century

Forum-Century


Beiträge: 102
Anmeldedatum: 19.04.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.05.2011, 09:40     Titel: Punkte für Plot verbinden - keine Schleife möglich
  Antworten mit Zitat      
Hallo zusammen,

ich habe mir per Simulink eine kleine Struktur gebastelt, bei der ich immer einen Step vorgebe und dann schauen will, wie diverse Parameter darauf reagieren.

Für jeden Step, den ich plotte, rechne ich dann immer einen dazu passenden Wert aus.
Da ich aber immer den Step manuell vorgeben muss, lasse ich danach meinen Code laufen. Nun möchte ich aber die einzelnen Werte, die ich passend zu den Steps berechne, zu einer Linie verbinden.
D.h. nachdem ich meinen zweiten Step eingegeben haben, existieren also zwei Punkte im Figure und diese zwei Punkte sollen verbunden werden. Nach meinem dritten Step soll der dazu passende dritte Wert mit dem zweiten Wert berechnet werden usw.

Normalerweise müsste man hier wohl eine Schleife benutzen, allerdings ist dies wohl nicht möglich, weil ich ja meinen Step immer manuell eingeben muss und somit keine Schleife realisieren kann.

Im Moment sieht mein Code für den Plot (die Punkteberechnung dürfte wohl unwichtig sein) folgendermaßen aus:
Code:

figure(4);
hold on
grid on
plot(A,B,'rx','MarkerSize',12)
 


Kann mir einer helfen und sagen, wie ich also meinen Plan umsetzen kann?

Vielen Dank!

LG
Kai
Private Nachricht senden Benutzer-Profile anzeigen


Gast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.05.2011, 10:21     Titel:
  Antworten mit Zitat      
Hi,

Wenn ich das richtig verstehe, willst du einen Punkt in deinen Plot dazufügen?

Wenn das so ist, kannst du das so realisieren:

Code:

p=plot(A,B,'rx','MarkerSize',12)  %erstellt deinen Plot

% Plot updaten
X=[5,7] %x und y Wert vom Punkt
set(p,'ydata',[get(p,'ydata'),X(2)],'xdata',[get(p,'xdata'),X(1)])

 

Wenn du nur einen Koordinate hast, kannst du einfach den Teil mit 'xdata' weglassen.
 
KaiS
Themenstarter

Forum-Century

Forum-Century


Beiträge: 102
Anmeldedatum: 19.04.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.05.2011, 10:34     Titel:
  Antworten mit Zitat      
Hi,

nicht ganz, wahrscheinlich habe ich mich ein bisschen missverständlich ausgedrückt.

Also die Abfolge ist folgendermaßen:

1. Ich gebe im Step einen Start- und Zielwert ein.
2. Ich führe meinen Code aus.
3. Der Code berechnet mir passend zu dem Step, den ich gerade eingegeben habe, einen Wert aus, z.B. 1. Dies ist mein y-Wert, der x-Wert ist einfach die Differenz meines Steps (also wenn ich von 0,1 auf 0,2 springe, wäre mein resultierender Punkt hier x=0,1 und y=1).
4. Ich gebe im Step einen neuen Start- und Zielwert ein.
5. Ich führe meinen Code aus.
6. Der Code berechnet mir passend zu dem Step, den ich gerade eingegeben habe, einen Wert aus, z.B. 2. Dies ist mein y-Wert, der x-Wert ist einfach die Differenz meines Steps (also wenn ich nun von 0,1 auf 0,5 springe, wäre mein resultierender Punkt hier x=0,4 und y=2).
7. Nun sollen die beiden Punkte, die ich berechnet habe, verbunden werden. Diese Prozedur soll schon mit 5. einhergehen.
8. Wenn ich nun wiederum einen neuen Step eingebe, erhalte ich ja analog zu oben einen dritten Punkt. Dieser soll dann wieder automatisch durch den Code mit meinem davor berechneten, d.h. hier: zweitem, Punkt verbunden werden.

Mithilfe des oben geposteten Codes kann ich schon meine Punkte jeweils plotten. Durch hold on bleiben die Punkte ja auch bei einem neuen Step erhalten. Mir fehlt nun lediglich das Wissen, wie ich diese geplotteten Punkte miteinander verbinden kann.

Ich hoffe, das war einigermaßen verständlich Smile

LG
Kai
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.05.2011, 10:47     Titel:
  Antworten mit Zitat      
Dadurch, dass du es mit hold plottest, bekommt jeder Punkt einen eigenen Plot, was es schwierig macht sie zu verbinden.

Hier eine Idee:

Code:

%plots erzeugen
figure;
p1=plot(A,B)                               %blaue Linie
hold on;
p2=plot(A,B,'rx','markersize',12); %rote Kreuze
hold off


%dann jeweils den Punkt hinzufügen:
set(p1,'ydata',[get(p1,'ydata'),B],'xdata',[get(p1,'xdata'),A])
set(p2,'ydata',[get(p2,'ydata'),B],'xdata',[get(p2,'xdata'),A])

 
 
Gast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.05.2011, 10:54     Titel:
  Antworten mit Zitat      
Ergänzung:

Damit du den Plot nicht mit dem ersten Punkt erstellen musst, kannst du folgendes machen:

Code:

figure;
p1=plot(1,1) ;                            %blaue Linie
hold on;
p2=plot(1,1,'rx','markersize',12); %rote Kreuze
hold off
set(p1,'xdata',[],'ydata',[]);
set(p2,'xdata',[],'ydata',[]);

%dann in deinem Codeaufruf wie vorher reinplotten:
set(p1,'ydata',[get(p1,'ydata'),B],'xdata',[get(p1,'xdata'),A])
set(p2,'ydata',[get(p2,'ydata'),B],'xdata',[get(p2,'xdata'),A])

 
 
KaiS
Themenstarter

Forum-Century

Forum-Century


Beiträge: 102
Anmeldedatum: 19.04.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.05.2011, 14:04     Titel:
  Antworten mit Zitat      
Hi,

sry für meine späte Antwort! Hab ganz vergessen, mich zu bedanken.. Smile

LG
Kai
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.