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

plotten mehrer fenster in einem "Hauptfesnter"

 

shersei
Forum-Anfänger

Forum-Anfänger


Beiträge: 20
Anmeldedatum: 28.07.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.08.2010, 17:07     Titel: plotten mehrer fenster in einem "Hauptfesnter"
  Antworten mit Zitat      
hi leute hab wieder ma ein problem und zwar
hab ich ein ein programm dass mir mehrere fesnter nach einander zeigt
was ich nun versuch aber net schaffe ist dass ein hauptfenster erscheint in der dann meine zur auswahl stehende kleiner fenster sind.

so ungefähr ist mein code :

für vorschläge bin ich sehr dankbar
Code:

header={'wd','fef','wd','fef','vfdv','vfdv','wd','fef','vfdv','wd','fef','vfdv','wd','fef','vfdv'};
counter=0;
for Tz=1:1:10;
        signal1=sin(2*pi*(1:1:10));
        signal2=sin(2*pi*(1:1:10));



counter=counter+1;

korr=xcorr(signal1,signal2,'coeff');% Korrelationen


figure(counter);

xmax = (length(korr)-1)/2;
ymax = 1.2*max([signal1 signal2 -signal1 -signal2]);
        [ykorrmax, yindexmax] = max(korr);

subplot(3,1,1);
plot(0:length(signal2)-1, signal2);
title(sprintf('kreuzkorrelation von %s&%s',...
header{(zaehler2)},header{(zaehler)})); grid;
subplot(3,1,2);
plot(0:length(signal1)-1, signal1);
title(sprintf(' %s(oben) und %s  (unten)',...
header{(zaehler2)},header{(zaehler)})); grid;
subplot(3,1,3);
        n = -xmax:xmax;
plot(n, korr);




end;
 
Private Nachricht senden Benutzer-Profile anzeigen


lilov
Forum-Century

Forum-Century


Beiträge: 193
Anmeldedatum: 05.05.10
Wohnort: Bremerhaven
Version: ---
     Beitrag Verfasst am: 04.08.2010, 17:30     Titel:
  Antworten mit Zitat      
Hi,

ich versteh nicht genau was du meinst. Du willst also mehrere Figures aufmachen in denen sich kleinere Subplots befinden...ist das richtig?...oder ein Figure mit mehreren Subplots?

Lilov
Private Nachricht senden Benutzer-Profile anzeigen
 
shersei
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 20
Anmeldedatum: 28.07.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.08.2010, 17:35     Titel:
  Antworten mit Zitat      
hmmm wenn ich das programm so laufen lasse wie hier oben
dann bekomme ich
10 fenster hinter einander
was ich versuche aber net sache ist dass ich ein fenster bekomme
in denen die 10(1..10) fenster zu sehen sind .
wenn man nun auf ein fenster drauf drückt oder mit der maus drauf geht soll sie vergrößt werden ..


ist das machbar mit matlab ??
Private Nachricht senden Benutzer-Profile anzeigen
 
lilov
Forum-Century

Forum-Century


Beiträge: 193
Anmeldedatum: 05.05.10
Wohnort: Bremerhaven
Version: ---
     Beitrag Verfasst am: 04.08.2010, 17:48     Titel:
  Antworten mit Zitat      
ooh wow...sowas lässt sich glaube ich nur mit active x controls realisieren.... da musst du aber die profis im Forum fragen:)
Private Nachricht senden Benutzer-Profile anzeigen
 
shersei
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 20
Anmeldedatum: 28.07.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.08.2010, 17:50     Titel:
  Antworten mit Zitat      
ohe ohe
ich hoffe die lesen das Confused

muss auch ´net soo übertrieben sein nur etwas geordneter Wink
denn in richtigen programm kommen da bis 20 fenster
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

eine erste Lösung:
Code:
for I = 1:30
    subplot(3,10,I)
    plot(rand(10,1))
end
ax = get(gcf,'Children');
set(ax, 'ButtonDownFcn', @bdf);


Code:
function bdf(this_ax, varargin)
f = figure;
new_ax = copyobj(this_ax, f);
set(new_ax, 'Position', [0.05 0.05 0.9 0.9]);


Manko: man muss in den Hintergrund des Koordinatensystems clicken, nicht auf die Linien. Das könnte man sicher beheben, und sonst ists auch nicht perfekt... aber ein Anfang ists, denke ich.

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

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 04.08.2010, 18:37     Titel:
  Antworten mit Zitat      
Hallo,

versuch mal damit:
http://www.mathworks.com/matlabcent.....-resizable-sub-containers
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: 04.08.2010, 22:32     Titel:
  Antworten mit Zitat      
Hallo Shersei,

shersei hat Folgendes geschrieben:

was ich versuche aber net sache ist dass ich ein fenster bekomme
in denen die 10(1..10) fenster zu sehen sind.


Mir wird immer noch nicht ganz klar, was du meinst. Aber man kann docked figures per Programm erzeugen:
Code:

desktop = com.mathworks.mde.desk.MLDesktop.getInstance;
myGroup = desktop.addGroup('myGroup');
desktop.setGroupDocked('myGroup', 0);

myDim = java.awt.Dimension(5, 2);
desktop.setDocumentArrangement('myGroup', 2, myDim)

figH = zeros(1, 10);
for iFig = 1:10
   figH(iFig) = figure('WindowStyle', 'docked', ...
      'Name', sprintf('Figure %d', iFig), 'NumberTitle', 'off');
   set(get(handle(figH(iFig)), 'javaframe'), 'GroupName', 'myGroup');
end
 

Einzeln Figures herauszoomen kannst Du dann mit dem kleinen Pfeilchen rechts oben. Und zurück-docken kann man die gezoomte Figure damit auch wieder.

Aber!
Dieses Programm läuft in Matlab 2009a. Ob es auch in 2010a läuft, weiß ich nicht. Ob es in 2010b laufen wird, wissen ein paar Entwickler, und ob es 2011a laufen wird, kann niemand wissen. Deshalb ist das zwar ganz niedlich und sollte eigentlich auch zu den festen und dokumentierten Befehlen in Matlab gehören. Aber bis es soweit ist, kann man damit schon sehr schön spielen.

Deswegen würde ich lieber eine Figure mit 10 SubPlots erstellen und bei Bedarf per COPYOBJ eine neue große Figure erstellen.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
shersei
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 20
Anmeldedatum: 28.07.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.08.2010, 09:09     Titel:
  Antworten mit Zitat      
hi danke
ich hab nur noch ein problem und zwar das erste fenster wird nicht in die gruppe eingefügt :S
Code:

header={'wd','fef','wd','fef','vfdv','vfdv','wd','fef','vfdv','wd','fef','vfdv','wd','fef','vfdv'};
counter=0;

figH = zeros(1, 10);
iFig=0;
for Tz=1:1:10 ,  iFig = iFig+1;

    signal1=sin(2*pi*(1:1:10));
    signal2=sin(2*pi*(1:1:10));



    counter=counter+1;

    korr=xcorr(signal1,signal2,'coeff');% Korrelationen


    figure(counter);

    xmax = (length(korr)-1)/2;
    ymax = 1.2*max([signal1 signal2 -signal1 -signal2]);
    [ykorrmax, yindexmax] = max(korr);

    subplot(3,1,1);
plot(0:length(signal2)-1, signal2);
    title(sprintf('kreuzkorrelation von %s&%s',...
header{(Tz)},header{(Tz)})); grid;
subplot(3,1,2);
plot(0:length(signal1)-1, signal1);
title(sprintf(' %s(oben) und %s  (unten)',...
header{(Tz)},header{(Tz)})); grid;
subplot(3,1,3);
    n = -xmax:xmax;
plot(n, korr);



desktop = com.mathworks.mde.desk.MLDesktop.getInstance;
myGroup = desktop.addGroup('myGroup');
desktop.setGroupDocked('myGroup', 0);

myDim = java.awt.Dimension(5, 2);
desktop.setDocumentArrangement('myGroup', 2, myDim)



figH(iFig) = figure('WindowStyle', 'docked', ...
'Name', sprintf('Figure %d', iFig), 'NumberTitle', 'off');
set(get(handle(figH(iFig)), 'javaframe'), 'GroupName', 'myGroup');
end;


 
Private Nachricht senden Benutzer-Profile anzeigen
 
shersei
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 20
Anmeldedatum: 28.07.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.08.2010, 09:08     Titel:
  Antworten mit Zitat      
hi gibt es auch ein beispiel für


UISplitPane?????
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 06.08.2010, 11:29     Titel:
  Antworten mit Zitat      
Hallo,

Beispiel ist auf der FileExchange Seite vorhanden:
Code:

[hDown,hUp,hDiv1]=uisplitpane(gcf,'Orientation','ver','dividercolor',[0,1,0]);
[hLeft,hRight,hDiv2]=uisplitpane(hDown,'dividercolor','r','dividerwidth',1);
t=0:.1:10;
hax1=axes('Parent',hUp); plot(t,sin(t));
hax2=axes('parent',hLeft); plot(t,cos(t));
hax3=axes('parent',hRight); plot(t,tan(t));
hDiv1.DividerLocation = 0.75; % one way to modify divider...
set(hDiv2,'DividerColor','red'); % ...and this is another way...
 
Private Nachricht senden Benutzer-Profile anzeigen
 
shersei
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 20
Anmeldedatum: 28.07.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.08.2010, 11:31     Titel:
  Antworten mit Zitat      
hi danke schön
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.