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

beim plotten dden namen des fensters ändern?anstatt figure!

 

Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 30.09.2010, 00:47     Titel:
  Antworten mit Zitat      
Hallo Dionysos!

Code:

guiName = get(handles.figure1,'Name'); % Name GUI bestimmen
eval(guiName)       % GUI erneut ausführen
 

Doch noch eine Idee: Wenn hier der Name "Beispiel" ist, klappt "eval('Beipiel')" natürlich nicht.
Du müsstest die Funktion also nicht über den Namen der Figure aufrufen. Kannst Du bei der Erstellung nicht einen FunctionHandle für die erstellende Funktion speichern?
Code:

% Z.B. in OpenFcn:
handles.MainFuncHandle = @funcname; % mit richtigem Namen
% Dann im Callback:
feval(handles.MainFuncHandle);
 


Nebenbei: Schön dass Du die Figure nicht "!del *.*" genannt hast. Ich würde aus Sicherheitsgründen statt EVAL auf alle Fälle FEVAL benutzen.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen


Sco
Forum-Meister

Forum-Meister


Beiträge: 699
Anmeldedatum: 15.08.10
Wohnort: Dundee
Version: 2008a, 2010a
     Beitrag Verfasst am: 30.09.2010, 01:01     Titel:
  Antworten mit Zitat      
Hallo Jan,

warum so kompliziert machen???

Ich (SCO, der dir auch die letzten 2 Antworten geschrieben hat Smile ) hatte den Grund für die Fehlermeldung ja schon erklärt und schon eine Lösung vorgeschlagen:
Code:

close(bsp);    % Schließen der alten GUI
bsp; % Starten des GUI (bsp.fig)
 

Was ist daran denn auszusetzen, das ist einfach und schnell.

MFG

Sco
Private Nachricht senden Benutzer-Profile anzeigen
 
Dionysos
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 64
Anmeldedatum: 16.09.09
Wohnort: ---
Version: R2011a
     Beitrag Verfasst am: 30.09.2010, 08:47     Titel:
  Antworten mit Zitat      
Guten Morgen ihr zwei Fleißigen,

@ Sco:
Hmm.. anfangs dachte ich auch wieso der Button so kompliziert programmiert sein soll. Aber deine Methode funktioniret leider nicht. Das Fenster zuckt zwar kurz und es erscheinen keine Fehler im CW, aber geschlossen wird es nicht.

@ Jan S:
Zitat:

Wenn hier der Name "Beispiel" ist, klappt "eval('Beipiel')" natürlich nicht.

Das verstehe ich nicht, wieso nicht? Wenn ich den Name nicht verändere, kann er ja auch bsp ausführen.

Dein Tip mit dem Handle ist mir nicht ganz klar.
Code:

% in der OpenFcn:
handles.MainFuncHandle = @bsp;
% Dann im Callback:
function reset_pushbutton_Callback(hObject, eventdata, handles)
feval(handles.MainFuncHandle);
 

Meintest du das so?
_________________

Dionysos
Private Nachricht senden Benutzer-Profile anzeigen
 
Sco
Forum-Meister

Forum-Meister


Beiträge: 699
Anmeldedatum: 15.08.10
Wohnort: Dundee
Version: 2008a, 2010a
     Beitrag Verfasst am: 30.09.2010, 14:43     Titel:
  Antworten mit Zitat      
Hallo,

warum es nicht nach der Namenänderung klappt habe ich doch ausführlich beschrieben:

Zitat:

wie die Fehlerbeschreibung bereits mitteilt kennt die Funktion eval die Variable 'Beispiel' nicht.

Standardmäßig heisst das Hauptfenster der GUI (figure1) genau so wie du das GUI abgespeicherst hasst. In deinem Fall ist der Name von figure1 also "bsp". Wenn du also mittels get den Names von figure 1 holst entspricht er den Namen deines GUIs, so dass du mit eval dein GUI ausführen kannst.

Änderst du nun den Namen der figure1 z.B. in "NEU", dann will eval, das GUI mit den Namen NEU (NEU.fig) ausführen, was natürlich nicht existiert. So entsteht also erstmal die Fehlermeldung.


Und das mit dem:
Code:

close(bsp)
bsp;
 

sollte schon klappen. Natürlich "zuckt" es nur, wenn du nichts am 1. Fenster änderst. Verschieb doch dein GUI mal in eine Ecke und führe dann den Code aus, dann siehst du das es macht was es soll. Falls wirklich nicht wäre das sehr komisch, da es bei mir funktioniert.

MFG

Sco
Private Nachricht senden Benutzer-Profile anzeigen
 
Dionysos
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 64
Anmeldedatum: 16.09.09
Wohnort: ---
Version: R2011a
     Beitrag Verfasst am: 30.09.2010, 18:00     Titel:
  Antworten mit Zitat      
Jetzt funktioniert es, ich hab den Fehler gefunden woran es lag. Für den Resetbutton wie er bisher war, musste ich die Multifunktion aktivieren. Diese hat nun aber deinen Tip gestört, ohmann....
Wieso einfach wenns auch kompliziert geht Very Happy .
DANKE!
_________________

Dionysos
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite Zurück  1, 2

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.