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

Übergabe Struct (durch Callback in GUI) in ext. function

 

Andr é

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.01.2011, 09:57     Titel: Übergabe Struct (durch Callback in GUI) in ext. function
  Antworten mit Zitat      
Hallo zusammen,

ich habe folgendes Problem und hoffe Ihr könnt mir weiterhelfen:

Ich habe eine GUI in der man diverse Einstellungen vornehmen kann.
Sobald ich auf einen Pushbutton mit "Berechnen und Darstellen" drücke sollen die in der GUI vorgenommenen Einstellungen ausgelesen werden in ein Struct geschrieben werden. Zudem wollte ich mit dem Callback meine eigentliche M-File laufen lassen, das Struct übergeben und die verwendeten Variablen in der M-File durch das Struct bedaten/beschreiben.
Mein Problem hierbei ist, dass die Variablen in der Callback function nur für die function anwesend sind. Sobald ich eine neue function dadurch öffne sind alle Variablen gelöscht. Ich habe es auch mit "global" oder "persistent" versucht zu deklarieren, was auch nicht funktionierte. Hier mein Versuch nur beispielhaft verkürzt:

function pushbuttonberechnen_Callback(hObject, eventdata, handles)

persistent Uebergabe
Uebergabe.Pfad=get(handles.edittoolpath,'String');
Uebergabe.Daten.a=get(handles.editvm,'String');
Uebergabe.Daten.b=get(handles.editem,'String');
Uebergabe.Daten.c=get(handles.editfz,'String');

cd(strcat(Uebergabe.Pfad,'\Anwenderskript'));
Tool(Uebergabe)


Somit lies sich wie gesagt zwar das Tool abspielen, allerdings kommt dann der Fehler "cleared Variablen" sobald das Struct das erste mal verwendet wird.
Ich hoffe ich konnte mein Problem verständlich rüberbringen.

Viele Grüße und noch verspätet ein frohes neues Jahr,

André


Andr é

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.01.2011, 11:07     Titel:
  Antworten mit Zitat      
kurzer Nachtrag,

ich konnte das Problem zwar lösen, allerdings überhaupt nicht elegant, indem ich das Struct "Uebergabewerte" im Callback des PushButtons abspeicher (save Uebergabewerte.mat). Darunter öffne ich die M-File bzw. das Berechnungstool und lese dort die abgespeicherte .mat-Datei ein.
Das allerdings ist meiner Meinung nach großer Pfusch.
Ich hoffe noch auf eine elegante Lösung Smile

Gruß, André
 
Lord nibbler

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.01.2011, 11:24     Titel:
  Antworten mit Zitat      
Hallo André

poste mal bitte die ersten Zeilen der Funktion Tool bis Uebergabe das erste mal verwendet wird.

Gruß Lord nibbler
 
Andr é

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.01.2011, 11:51     Titel:
  Antworten mit Zitat      
Dankeschön Lord Nibbler,

du hast mich durch deinem Post den sau blöden Fehler schon finden lassen.
Anfangs war es nur ein selbstständiges Tool, bei welchem ich Anfangs alles gelöscht habe. Diese hatte ich jetzt als Funktion umgeschrieben. Allerdings kann die Variable natürlich nicht vorhanden sein, wenn ich "clear" nicht entferne Very Happy. Jetzt geht es auch ohne "persistent" oder "global". Super, danke nochmal!

function Tool(Uebergabe)

%Formatierung+Einlesen

clear;clc;format long;
set(0,'ShowHiddenHandles','on')
delete(get(0,'Children')) %Schließen der bereits geöffneten Figures

Pfad=Uebergabe.Pfad;
 
Andr é

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.01.2011, 11:57     Titel:
  Antworten mit Zitat      
Danke Lord Nibbeler,

hab durch deinen Post den ziemlich doofen Fehler gefunden.
War ursprünglich ein Programm, bei welchem ich Anfangs alles habe Löschen lassen.
Da ich es jetzt als function umgeschrieben habe, kann natürlich später keine Variable vorhanden sein, wenn ich diese lösche. Very Happy

function Tool(Uebergabe)

%Formatierung+Einlesen
clear;clc;format long;
set(0,'ShowHiddenHandles','on')
delete(get(0,'Children')) %Schließen der bereits geöffneten Figures

Pfad=Uebergabe.Pfad
 
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.