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

subplots einzeln ansprechen

 

pallasathena
Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 17.12.07
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.12.2007, 15:31     Titel: subplots einzeln ansprechen
  Antworten mit Zitat      
hallo!

ich habe in mehreren figures subplots erzeugt (3x4) und will nun einen interessanten subplot (alle sind es eben leider nicht) in einem axes.feld auf der hauptgui vergrößert darstellen.

wie spreche ich einen einzelnen subplot dieser figure an, dass er weiß, dass ich ihn angeklickt habe - so wie es bei der hand aus der menüleiste funktioniert (nur - welcher code steckt da dahinter?). um dieses anklicken geht es mir, den rest weiß ich dann wieder.

im anhang die datei zum figure.erzeugen

danke im voraus
ela

compPlot.m
 Beschreibung:

Download
 Dateiname:  compPlot.m
 Dateigröße:  1 KB
 Heruntergeladen:  1117 mal
Private Nachricht senden Benutzer-Profile anzeigen


outsider
Forum-Meister

Forum-Meister


Beiträge: 806
Anmeldedatum: 03.09.07
Wohnort: München
Version: R2012b
     Beitrag Verfasst am: 18.12.2007, 09:20     Titel:
  Antworten mit Zitat      
Hallo Ela,

Über die "ButtonDownFcn" der Axes kannst Du eine Aktion implementieren, wenn zB. die Axes angeklickt wird. Dieser kleiner Beispiel erzeugt vier subplot. Der Inhalt der Axes, die Du anklickst wird in großen Axes gespiegelt:

folgendes als TEST.M abspeichern und starten
Code:
function test
%
figure
ha = subplot(2,4,[1 2 5 6])
ha1 = subplot(2,4,3);
plot(rand(3,5))
ha2 = subplot(2,4,4);
plot(rand(3,5))
ha3 = subplot(2,4,7);
plot(rand(3,5))
ha4 = subplot(2,4,8);
plot(rand(3,5))
%
set([ha1 ha2 ha3 ha4],'ButtonDownFcn',{@click,ha})

function click(hObj,tmp,ha)
cla(ha)
copyobj(get(hObj,'Children'),ha)
 



MfG
Private Nachricht senden Benutzer-Profile anzeigen
 
pallasathena
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 17.12.07
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.12.2007, 11:22     Titel:
  Antworten mit Zitat      
ahh, danke ... werde ich gleich ausprobieren ... ich denke, das bringt mich jetzt weiter.

und das ganze werde ich dann wieder über eine schleife machen müssen, da ja die anzahl der subplots von der anzahl der ODEs abhängt, man im voraus also nie weiß, wieviele da herauskommen

ich werde dann meldung machen
ela
Private Nachricht senden Benutzer-Profile anzeigen
 
pallasathena
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 17.12.07
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.12.2007, 13:00     Titel:
  Antworten mit Zitat      
hallo du super.helfer! (ist jetzt bitte nicht zynisch gemeint)

dein beispiel ist genau das, was ich brauche und doch: ich verzweifle!

nachdem ich das axis (mit dem tag plotAnalysis) in der haupt-gui habe, muss ich doch mit

Code:

PLOTANALYSIS = axes(handles.plotAnalysis)
 


die verbindung zur hauptgui schaffen - PLOTANALYSIS habe ich hier wie drüben als global definiert und anstatt all deiner 'ha' habe ich diese globale variable PLOTANALYSIS.
und doch schreit er mir immer, dass er die class handles nicht finden kann bzw nicht kennt.

auf klick auf die subplots reagiert der subplot schon, wenn ich 'PLOTANALYSIS = axes(handles.plotAnalysis);' auskommentiert habe - lächel, ja der plot verschwindet, aber das ist ja schon etwas und taucht dann eben leider nirgends mehr auf.
so schauts bei mir jetzt aus - die iteration über alle plots hab ich noch nicht, ich muss das schrittweise langsam machen Smile

Code:

function big

global PLOTANALYSIS

PLOTANALYSIS = axes(handles.plotAnalysis);    
sb1 = subplot(a1,a2,1);
sb2 = subplot(a1,a2,2);
sb3 = subplot(a1,a2,3);
sb4 = subplot(a1,a2,4);

set([sb1,sb2,sb3,sb4],'ButtonDownFcn',{@click,PLOTANALYSIS})
       
function click(hObj,tmp,PLOTANALYSIS)
cla(PLOTANALYSIS)
copyobj(get(hObj,'Children'),PLOTANALYSIS)
 


und diese function big füge ich dann vor das letzte 'end' der gestern angehängten compPlot()
Private Nachricht senden Benutzer-Profile anzeigen
 
outsider
Forum-Meister

Forum-Meister


Beiträge: 806
Anmeldedatum: 03.09.07
Wohnort: München
Version: R2012b
     Beitrag Verfasst am: 18.12.2007, 14:04     Titel:
  Antworten mit Zitat      
versuche mal folgendes:

die GUI im GUIDE öffnen, die "plotAnalysis"-Axes enthält. Doppelclick auf die Axes (es öffnet sich nun der Inspect Browser). Nun finde die Eigenschaft "NextPlot" und setze diesen auf "Add"

Sollte eigentlich nun funktionieren. Falls nicht uppe mal den M- und FIG-File hoch...


MfG
Private Nachricht senden Benutzer-Profile anzeigen
 
pallasathena
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 17.12.07
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.12.2007, 14:19     Titel:
  Antworten mit Zitat      
hab ich gemacht und er kennts nicht Crying or Very sad

aber um das alles auszuführen, wirst du meine anderen m.files auch noch brauchen ... nur tnfalpha.fig und tnfalpha.m ist zu wenig ..... willst du dir das alles antun? Smile

hm und jetzt bemerke ich, dass ich eh immer nur ein file hochladen kann ... nein, 'die endung .fig ist hier verboten' .....

darf ich dir das ganze paket auf eine email.adresse schicken?

TNFalpha.m
 Beschreibung:

Download
 Dateiname:  TNFalpha.m
 Dateigröße:  22.43 KB
 Heruntergeladen:  1110 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
outsider
Forum-Meister

Forum-Meister


Beiträge: 806
Anmeldedatum: 03.09.07
Wohnort: München
Version: R2012b
     Beitrag Verfasst am: 18.12.2007, 14:25     Titel:
  Antworten mit Zitat      
reduziere auf das Nötigste und packe mim ZIP.


MfG
Private Nachricht senden Benutzer-Profile anzeigen
 
pallasathena
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 17.12.07
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.12.2007, 14:28     Titel:
  Antworten mit Zitat      
es ist so verwoben, dass du da einfach alles brauchst

projekt.rar
 Beschreibung:

Download
 Dateiname:  projekt.rar
 Dateigröße:  58.94 KB
 Heruntergeladen:  956 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
outsider
Forum-Meister

Forum-Meister


Beiträge: 806
Anmeldedatum: 03.09.07
Wohnort: München
Version: R2012b
     Beitrag Verfasst am: 18.12.2007, 16:20     Titel:
  Antworten mit Zitat      
Wie wärs, wenn man die HANDLES-Variable mit übergibt? sowohl in "dimChoiceAnalysis_Callback", als ich im "compPlot"?

OK - es funzt nun. Alles attached.

Paar Bemerkungen am Rande:
Die GUI ist sehr unstabil... Quellcode lässt viel zu wünschen übrig (zumindest was die GUI angeht). An vielen stellen kann es bzgl. Performance und Qualität verbessert und optimiert werden (bitte nicht fragen wie - sonst bekommst Du meine Kontonummer Smile ).


MfG

projekt_new.zip
 Beschreibung:

Download
 Dateiname:  projekt_new.zip
 Dateigröße:  61.07 KB
 Heruntergeladen:  1039 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
pallasathena
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 17.12.07
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.12.2007, 16:25     Titel:
  Antworten mit Zitat      
vielen tausend dank ....... nein, ich frag nicht nach Smile
das ist ein projekt auf der uni, das wir im alleingang machen mussten und wie du ja selber siehst, bin ich eine absolute niete im programmieren. deshalb bin ich einfach froh, dass es so funktioniert.

danke, auch dass du mir deine zeit geschenkt hast - ich weiß das sehr zu schätzen!!!
ela
Private Nachricht senden Benutzer-Profile anzeigen
 
pallasathena
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 17.12.07
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.12.2007, 18:02     Titel:
  Antworten mit Zitat      
jetzt hab ich noch einen hänger: wo übergebe ich in parvar.m diese handles? diese funktion ist ja eigentlich ein ODE.solver (und mit dem plotten vermischt) und der mag das nicht, wenn ich im die handles anhänge ....

oder kann das sein, dass ich dieses parvar teilen muss: in eine funktion, um die werte zu berechnen und einen eigenen button dafür und in eine 2. funktion, die dann mit einem wieder eigenen button plottet?

ich hätte das schon probiert, ist aber sooooooooooo verwoben, dass sich das für mich so schwer trennen lässt.
Private Nachricht senden Benutzer-Profile anzeigen
 
pallasathena
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 17.12.07
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.12.2007, 01:56     Titel:
  Antworten mit Zitat      
danke, jetzt hab ichs wirklich geschafft Very Happy
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.