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

mit set auf anderes figure zugreifen

 

Shin
Forum-Century

Forum-Century


Beiträge: 117
Anmeldedatum: 12.11.09
Wohnort: Karlsruhe
Version: ---
     Beitrag Verfasst am: 07.04.2010, 09:51     Titel: mit set auf anderes figure zugreifen
  Antworten mit Zitat      
Hallo Leute!
Folgende Sache, ich habe mein GUI - ein Control Panel mit dem Namen "Auswertung", das erstellt mir auf Knopfdruck ein Figure mit diversen Plots.
Nun möchte ich aus dem GUI heraus die Achsen der Plots im Figure ändern - bzw generell beliebige Variablen des Figures durch Buttons im GUI.

Wie mach ich das am geschicktesten?

Code:

set(FIGURE.ax(1),'XLim',[1 2],'YLim',[3 4])
 

Wäre das ein Ansatz?
Wie sprech ich den FIGURE an? (heißt ebenfalls Auswertung)

Danke + Gruß
Private Nachricht senden Benutzer-Profile anzeigen


Zenon
Forum-Guru

Forum-Guru


Beiträge: 292
Anmeldedatum: 20.01.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.04.2010, 10:13     Titel:
  Antworten mit Zitat      
Das musst Du mit findobj arbeiten:

Das ist ein Bsp, was Denny zum Ändern eines Buttons in einer anderen GUI gepostet hatte...ich denke das solltest Du anpassen können...

Code:

hbut1= findobj(findall(0,'Name','GUI1'),'Style','pushbutton','Tag','Button1')
set(hbut1, 'Enable', 'on')
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Shin
Themenstarter

Forum-Century

Forum-Century


Beiträge: 117
Anmeldedatum: 12.11.09
Wohnort: Karlsruhe
Version: ---
     Beitrag Verfasst am: 07.04.2010, 10:32     Titel:
  Antworten mit Zitat      
Ist das auf Variablen übertragbar und interpretiere ich das richtig?

Mit
findobj(findall(0,'Name','GUI1'),'Style','pushbutton','Tag','Button1')
lese ich ein Objekt, in dem Fall ein Button aus einem belieben GUI/Figure, aus und verändere den Wert bzw eine Eigenschaft.

Aber
set(hbut1, 'Enable', 'on')
übergibt den Wert ja noch nicht - oder? Er verändert ihn nur, aber im anderen GUI/Figure kommt das ja so nicht an.
Private Nachricht senden Benutzer-Profile anzeigen
 
Zenon
Forum-Guru

Forum-Guru


Beiträge: 292
Anmeldedatum: 20.01.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.04.2010, 10:40     Titel:
  Antworten mit Zitat      
In der ersten Zeile suchst Du die andere GUI (mittels findall) und in der anderen GUI das handles des -in diesem Fall- Buttons (mittels findobj).
Dann nutzt Du das handle um DIREKT quasi in die andere GUI reinzupfuschen. Und es sollte mit jeder Property und jedem GUI-Element gehen.
Um reine Variablen (also keine Properties) zu übertragen solltest Du mit

Code:

% Schreiben
setappdata(h,'name',value);
% Lesen
value = getappdata(h,name);
 


arbeiten.

P.S.:
Schreib mal bitte den Code immer in der Codeformatierung...das macht das Ganze viel besser lesbar Wink
Private Nachricht senden Benutzer-Profile anzeigen
 
Shin
Themenstarter

Forum-Century

Forum-Century


Beiträge: 117
Anmeldedatum: 12.11.09
Wohnort: Karlsruhe
Version: ---
     Beitrag Verfasst am: 07.04.2010, 10:59     Titel:
  Antworten mit Zitat      
Ersteinmal danke für deine Tips.

Mit
Code:
und
Code:

hab ich mich schonmal auseinander gesetzt, leider hab ichs nicht hinbekommen, die figures richtig zuzuweisen.
Mit
Code:
kann ich ja dann mit h=1 arbeiten und die Variablen mit
Code:
setappdata(1,'name',value);
verändern.

Aber irgendwie habe ich das nicht auf mein Projekt übertragen bekommen. Ich weiß, das ist eine dumme Anfängerwissenslücke, aber was soll ich machen.^^
Ist mein GUI, das ich zuerst starte Figure(1) und mein Plot-Fenster, das durch das GUI erstellt wird Figure(2)? Oder wie bestimme ich das?
Sad

Gruß
Private Nachricht senden Benutzer-Profile anzeigen
 
Zenon
Forum-Guru

Forum-Guru


Beiträge: 292
Anmeldedatum: 20.01.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.04.2010, 12:20     Titel:
  Antworten mit Zitat      
Vielleicht code ich das unsauber, vielleicht ist es auch perfekt...aber ich nutze in dem Zusammenhang nie ein GUI spezifisches handle...es ist nur wichtig, dass du bei set und get das selbe handle nutzt.

Ich mache z.B. mal so:
Code:

% Code in schreibender GUI
setappdata(0, 'ImportPath',vImportPath);
% Code in lesender GUI
vImportPath = getappdata(0, 'ImportPath');
 


Das handle dient meines Wissens dazu, einzelne Werte zu gruppieren, dann kannst Du sie im Paket abholen:

Code:


Es hat nichts mit der spezifischen GUI zu tun. Du kannst meines Wissens auch diesleben Daten von zwei verschiedenen GUIs auslesen lassen...
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.