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

Separates Fenster

 

peterlec

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.05.2013, 17:15     Titel: Separates Fenster
  Antworten mit Zitat      
Ich arbeite mit subplots und manchmal benötige ich halt mitten im Code ein seprates Fenster. Wie mach ich es nur..

Wenn ich figure vor der Ausgabe schreibe, dann wird die ganze Ordnung zusammengeworfen


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 21.05.2013, 19:15     Titel: Re: Separates Fenster
  Antworten mit Zitat      
peterlec hat Folgendes geschrieben:
dann wird die ganze Ordnung zusammengeworfen

genaue fehlerbeschreibungen, angaben was man bereits versucht hat und inwieweit das ergebniss von der erhofften lösung abweicht erleichtern die hilfe sehr. sonst muss man immer nachfragen. wenn man sich 5 min zeit nimmt seine frage ordentlich zu formulieren erspaart das allen viel zeit Smile
also was hast du gemacht? was meinst du mit "ordnung zusammengeworfen" wie soll es den aussehen?
Private Nachricht senden Benutzer-Profile anzeigen
 
pariser

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.05.2013, 21:47     Titel:
  Antworten mit Zitat      
Wenn ich jetzt ein separates Fenster öffnen würde, und an der Stelle wo ein neues Fenster steht, figure schreiben würde dann zerstöre ich das system mit subplots

Code:
function blabla

figure()

subplot

subplot


_>>>>>>>>>>>ein neues Fenster!!!!!!
subplot

sunplot

end
 
Harald
Forum-Meister

Forum-Meister


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

ich sehe nicht, warum hier irgendetwas irgendwas zerstören sollte.

Bitte poste ein Beispiel, dass das von dir gemachte sinnvoll wiedergibt. Ich gehe z.B. davon aus, dass du subplot mit Argumenten aufrufst, und die Argumente können hier das entscheidende sein.

Am besten ist ein reproduzierbares Beispiel (gerne mit Zufallsmatrizen statt den tatsächlichen Daten), das die Probleme aufzeigt.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
peterlec

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.05.2013, 01:29     Titel:
  Antworten mit Zitat      
Code:
for i=1:3
   figure
   subplot(4,4,[5 6,1 2]); plot(x,y)
   subplot(4,4,[9 10, 13 14]); plot(x,y)
       subplot(4,4,3), plot(x,y),
       subplot(4,4,4), plot(x,y),
       subplot(4,4,7), plot(x,y),
       subplot(4,4,8), plot(x,y),
   subplot(4,4,[11 12,15 16]); plot(x,y)
end


[EDITED, Jan, Bitte code-Umgebung verwenden, Danke!]
 
Harald
Forum-Meister

Forum-Meister


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

danke für das Beispiel. Ich vermute, der Smiley steht für 8) ?

Wenn ich den Code laufen lasse, bekomme ich 3 große Plots und rechts oben 4 kleine, in jeder Figure genau das gleiche. Ich kann da kein Problem erkennen.

Grüße,
Harald
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: 22.05.2013, 11:14     Titel:
  Antworten mit Zitat      
Hallo peterlec,

Was soll "subplot(4,4,[5 6,1 2])" machen? Ich hätte erwartet, dass Matlab dies als Fehler betrachtet, denn der dritte Input sollte ein Skalar sein, oder?!

SUBPLOT erstellt ein neues AXES-Objekt im aktuell aktiven FIGURE Objekt, wie in der Dokumentation erklärt. Wenn du vorher ein anderes fenster aktivierst, wird SUBPLOT darin das neue AXES-Objekt zeichnen.
Es wird aus deiner Problembeschreibung nicht klar, ob dies dein Problem ist. Deshalb kann in Winkows Empfehlung, sich für die Formulierung der Frage 5 Minuten Zeit zu lassen, nur wärmstens unterstützen.

Lösung:
Code:
fig1Handle = figure;
subplot(2, 2, 1);
fig2Handle = figure;
uicontrol;  % Irgendetwas als dummy

% Lösung 1: Aktiviere das gewünschte FIGURE-Objekt:
figure(fig1Handle)
subplot(2, 2, 2);

% Lösung 2: Gib den Parent explizit an:
subplot(2, 2, 3, 'Parent', fig1Handle);
 

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
peterlec

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.05.2013, 13:22     Titel:
  Antworten mit Zitat      
Ja genau, das läuft ja, und wenn ich jetzt noch ein zusätzliches Fenster öffnen möchte mit figure, dann klappt es nicht...

for i=1:3
figure
subplot(4,4,[5 6,1 2]); plot(x,y)
subplot(4,4,[9 10, 13 14]); plot(x,y)
subplot(4,4,3), plot(x,y),
subplot(4,4,4), plot(x,y),
figure plot(y) <------------------------------------ Hier möchte ich ein separates Fenster haben,
subplot(4,4,7), plot(x,y),
subplot(4,4,Cool, plot(x,y),
subplot(4,4,[11 12,15 16]); plot(x,y)
end
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 22.05.2013, 14:40     Titel:
  Antworten mit Zitat      
Hallo,

jetzt glaube ich langsam zu wissen, was du willst. Willst du nach diesem einen plot(y) -Befehl wieder in das andere Figure zurückwechseln?

Wenn ja, woher soll MATLAB (oder auch wir) das denn wissen?

Eine Möglichkeit:

Code:
for i=1:3
figure(2*i-1)
subplot(4,4,[5 6,1 2]); plot(x,y)
subplot(4,4,[9 10, 13 14]); plot(x,y)
subplot(4,4,3), plot(x,y),
subplot(4,4,4), plot(x,y),
figure(2*i), plot(y)
figure(2*i-1)
subplot(4,4,7), plot(x,y),
subplot(4,4,8), plot(x,y),
subplot(4,4,[11 12,15 16]); plot(x,y)
end


Eine andere Möglichkeit:

Code:
for i=1:3
figure(1)
subplot(4,4,[5 6,1 2]); plot(x,y)
subplot(4,4,[9 10, 13 14]); plot(x,y)
subplot(4,4,3), plot(x,y),
subplot(4,4,4), plot(x,y),
figure(2), plot(y)
figure(1)
subplot(4,4,7), plot(x,y),
subplot(4,4,8), plot(x,y),
subplot(4,4,[11 12,15 16]); plot(x,y)
end


Es ist ja schön, dass du deine Beiträge kompakt hältst, aber wir müsen schon wissen, was du eigentlich erreichen willst, um dir helfen zu können. Leider weiß ich das eigentlich immer noch nicht.

Und: bitte Code-Umgebung verwenden.

Grüße,
Harald
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: 22.05.2013, 15:35     Titel:
  Antworten mit Zitat      
Hallo peterlec,

Bitte verwende die Code-Umgebung um Code zu posten.

Wieso wiederholst Du den Code nun nochmal? Ich habe zwei Lösungsmethoden gezeigt und es wäre sinnvoll, sie einfach in deinen Code einzufügen.

Es ist freundlich und effizient, wenn Du Rückfragen beantwortest. Fragen wie "Was soll subplot(4,4,[5 6,1 2]) machen?" dienen dazu eine Lösung deines Problems zu finden. Wenn sie ignoriert werden, entsteht der Eindruck, du seiest an der Arbeit der Antwortenden nicht ernsthaft interessiert.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Mmmartina
Forum-Meister

Forum-Meister


Beiträge: 745
Anmeldedatum: 30.10.12
Wohnort: hier
Version: R2020a
     Beitrag Verfasst am: 22.05.2013, 15:49     Titel:
  Antworten mit Zitat      
Jan S hat Folgendes geschrieben:

Was soll "subplot(4,4,[5 6,1 2])" machen? Ich hätte erwartet, dass Matlab dies als Fehler betrachtet, denn der dritte Input sollte ein Skalar sein, oder?!


Hallo Jan, zur Information für dich, das ergibt keinen Fehler. Smile
Sondern erzeugt innerhalb von größeren Subplotmatritzen subplotübergreifend aufgespannte Plots. Genau das hatte ich "wortwörtlich" vor einigen Tagen in diesem Thread (http://www.gomatlab.de/grafiken-mit.....en-generieren-t28650.html) als Lösung gepostet, wurde von dort scheinbar kommentarlos übernommen.
_________________

LG
Martina

"Wenn wir bedenken, daß wir alle verrückt sind, ist das Leben erklärt." (Mark Twain))
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: 22.05.2013, 16:56     Titel:
  Antworten mit Zitat      
Hallo Mmmartina,

Vielen Dank für diese neue Erkenntnis über Matlab! In der Tat brachte weiteres Suchen in den Online-Docs die Erklärung:
Zitat:
For example, subplot(2,3,[2 5]) creates one axes spanning positions 2 and 5 only

Das scheint ein neueres Feature zu sein. Zu schade, dass man bei Matlab keine List-of-changes findet, in der man direkt nachschauen kann, seit wann das möglich ist.

@peterlec: Arbeitest du mit dem Nutzer throat am gleichen Programm?
Gibt es einen triftigen Grund, wieso du genau an dieser Stelle im Code die Figure erzeugen möchtest? In dem gezeigten Code-Abschnitt könnte man die figure auch ohne Unterschiede erzeugen, nachdem die anderen Subplots fertiggestellt sind.

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