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

hold on/off Funktionsprinzip

 

xxxyyyy
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 80
Anmeldedatum: 08.10.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.11.2018, 23:13     Titel: hold on/off Funktionsprinzip
  Antworten mit Zitat      
Hallo,

ich dachte bisher immer, dass ich mit hold on einstelle, dass alle folgenden (und der bereits geplottete) Plott gehalten werden.

Warumfunktioniert es in den unteren Beispielen aber nicht?
Hängt das mit der for-Schleife zusammen?

Hat jemand eine Idee?

Vielen Dank im Voraus Smile

1345.PNG
 Beschreibung:

Download
 Dateiname:  1345.PNG
 Dateigröße:  81.73 KB
 Heruntergeladen:  269 mal
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 15.11.2018, 08:18     Titel:
  Antworten mit Zitat      
Hallo,

hold on bezieht sich immer auf ein bestimmtes axis. Du musst also vorher mit subplot in das gewünschte axis gewechselt haben oder die Syntax hold(ax, 'on') verwenden, um gezielt einen Subplot anzusprechen.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
xxxyyyy
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 80
Anmeldedatum: 08.10.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.11.2018, 19:49     Titel:
  Antworten mit Zitat      
Hallo,

vielen Dank für deine Antwort. Smile

Warum funktioniert dann aber folgendes? Da habe ich ja auch noch keinen subplot ausgewählt, oder?

1345.PNG
 Beschreibung:

Download
 Dateiname:  1345.PNG
 Dateigröße:  22.54 KB
 Heruntergeladen:  252 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 15.11.2018, 20:25     Titel:
  Antworten mit Zitat      
Hallo,

wundert mich etwas. Eine mögliche Erklärung wäre, dass hold on das Koordinatensystem bereits öffnet und der subplot-Befehl "nur" die Größe davon ändert.

Code bitte grundsätzlich als Text zur Verfügung stellen. Dann kann man auch damit experimentieren, ohne das abtippen zu müssen.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
xxxyyyy
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 80
Anmeldedatum: 08.10.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.11.2018, 22:58     Titel:
  Antworten mit Zitat      
Achso,

du meinst, dass dann das vom hold on geöffnete Koordinatensystem nur auf die linke Seite geschoben wird.

Dann müsste er ja, sobald ich ein 2. Koordinatensystem öffne wieder das Problem haben. Moment, probiere das mal aus.
Private Nachricht senden Benutzer-Profile anzeigen
 
xxxyyyy
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 80
Anmeldedatum: 08.10.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.11.2018, 23:02     Titel:
  Antworten mit Zitat      
Hm, scheint an dem
Code:
zu liegen.

Siehe:
Code:
t=linspace(0,10,20);
x(1,:)=t;
x(2,:)=2*t;
x(3,:)=3*t;

hold on;
subplot(1,3,1)  
plot(t,x(i,:),'r');
plot(t,x(i,:),'--b');
hold off;

t=linspace(0,10,20);
x=t;

hold on;
subplot(1,3,1)  
plot(t,x,'r');
plot(t,x,'--b');
hold off;
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 15.11.2018, 23:36     Titel:
  Antworten mit Zitat      
Hallo,

im zweiten Teil ist subplot(1,3,1) doch immer noch aktiv.
Wenn du vor das zweite hold on ein figure setzt, um ein neues Fenster aufzumachen, hast du dasselbe Verhalten wie bei x(i,:)

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
xxxyyyy
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 80
Anmeldedatum: 08.10.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.11.2018, 00:04     Titel:
  Antworten mit Zitat      
Irgendwie bin ich momentan etwas verwirrt, dass es einmal funktioniert und einmal nicht xD.

Code:
t=linspace(0,10,20);
x(1,:)=t;
x(2,:)=2*t;
x(3,:)=3*t;

hold on;
subplot(1,3,1)  
plot(t,x(3,:),'r');
plot(t,x(3,:),'--b');
hold off;

t=linspace(0,10,20);
x=t;

hold on;
subplot(1,3,1)  
plot(t,x,'r');
plot(t,x,'--b');
hold off;


13245.png
 Beschreibung:

Download
 Dateiname:  13245.png
 Dateigröße:  6.63 KB
 Heruntergeladen:  237 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
xxxyyyy
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 80
Anmeldedatum: 08.10.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.11.2018, 00:16     Titel:
  Antworten mit Zitat      
EDIT:
Habe mein zweites Beispiel nochmal plotten lassen und jetzt wird auch nur ein Graph geplottet (dann habe ich damalsvielleicht noch einen Graphen offen gelassen).

Damit gilt also: zuerst mit subplot das Koordinatensystem auswählen und dann erst hold on aktivieren.

Danke!
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 16.11.2018, 08:11     Titel:
  Antworten mit Zitat      
Hallo,

... oder die Syntax
Code:

verwenden.
Dann kannst du dazwischen auch in andere Subplots / Fenster springen.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
xxxyyyy
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 80
Anmeldedatum: 08.10.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.11.2018, 20:48     Titel:
  Antworten mit Zitat      
Alles klar, danke!
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 17.11.2018, 21:45     Titel:
  Antworten mit Zitat      
Hallo xxxyyyy,

Ich finde hold immer etwas indirekt. Wenn man in den Code reinschaut, findet man heraus, dass es die Eigenschaft 'NextPlot' des AXES-Objekts auf 'add' stellt. Deshalb verwende ich dann gleich:
subplot(1,3,1, 'NextPlot', 'add')
Dann wir der Subplot (der wieder ein AXES-Objekt ist) gleich so geöffnet, dass die LINE-Objekte darin gesammelt werden, und nicht überschrieben. Das empfinde ich als etwas weniger magisch als hold on oder hold all .

Gruß, Jan
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.