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

Pushbutton Callback an Workspace übergeben

 

Holla84
Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 18.06.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.07.2010, 10:19     Titel: Pushbutton Callback an Workspace übergeben
  Antworten mit Zitat      
Hallo,

Ich habe ein m.file mit dem ich bisher immer ganz normal gerechnet habe. Zu beginn der Berechnung werden sehr viele Variabelen definiert sowie Matrizen.

Nun versuche ich das Ganze über eine GUI zu starten, das funktioniert auch soweit ganz gut. Da die Berchnung jetzt aber in die function des Callbacks eingebunden ist werden weder die Variabelen noch berechnete Matrizen im Workspace hinterlegt.

Ich würde aber gerne nach der Berechnung bzw. bei Abbruch auf die Werte der Variablen zugreifen können. So wird mir bei der Eingabe nur angezeigt:
Undefined function or variable.

Gibt es da eine Möglichkeit alles an den Workspace zu übergeben?

gruß Holla
Private Nachricht senden Benutzer-Profile anzeigen


quant82
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 97
Anmeldedatum: 30.04.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.07.2010, 10:34     Titel:
  Antworten mit Zitat      
joa entweder mit eval oder du übergibst sie an die handles

Code:

handles.name = geladeneVariable;
guidata(hObject, handles);
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Holla84
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 18.06.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.07.2010, 10:47     Titel:
  Antworten mit Zitat      
Bin mir nicht ganz sicher wie ich das verwenden soll.

Die GUI ist ein einfach Pushbutton der zum starten der Berechnung dient.

In der Function des Pushbutton.Callback werden erst einmal Variablen definiert. Ganz einfach mit

x=1
y=2
z=3
a=4
b=5

mit denen dann anschließend gerechnet wird...
Rechne ich das File ohne function, also ohne die GUI befinden sich ja alle Variabelen im Workspace. Mit GUI leider nicht.
Man kann natürlich evalin, assignin oder so verwenden aber das sind einfach elend viele Matritzen und Variabelen die im laufe der Berechnung erstellt werden.
Private Nachricht senden Benutzer-Profile anzeigen
 
quant82
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 97
Anmeldedatum: 30.04.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.07.2010, 10:55     Titel:
  Antworten mit Zitat      
ja also wenn du die variablen innerhalb des guis verwenden willst dann übergibst du sie an die handles, welche du updaten musst damit sie auch da drin stehen dann...

Code:

x=1
y=2
z=3
a=4
b=5

handles.x = x;
handles.y = y;

% update der handles
guidata(hObject, handles);

 


danach kannst du sie überall ansprechen mit

Code:


% ansprechen

zahl = handles.x;

 
Private Nachricht senden Benutzer-Profile anzeigen
 
Frank

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.07.2010, 10:58     Titel:
  Antworten mit Zitat      
wenn zb deine funktion so aussieht:
Code:

[out1,ou2,ou3,.....]=deine_func (in1,in2,in3...)
 


dann schreibst du in Pushbotton callbeack:
Code:

eval([out1,ou2,ou3,.....]=deine_func (in1,in2,in3...))
 


ansonsten allgemein:
Code:

[a1, a2, a3, ...] = eval('function(in1,...)')
 
 
Holla84
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 18.06.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.07.2010, 11:15     Titel:
  Antworten mit Zitat      
Vielen Dank schon mal für eure Mühe.

Code:

function simstart_Callback(hObject, eventdata, handles)
% hObject    handle to simstart (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

filenameR1 = 'C:........txt'

fidR1 = fopen(filenameR1,'r');
spp = load(filenameR1);
%----------------Startparameter--------------------------------------------
time=inf;                    
%..........................................................................
%..........................................................................
%..........................................................................
x1=0.07*1e3;                  
x2=0.045*1e3;                  
x3=0.045*1e3;                
x4=0.045*1e3;                  
x5=0.090*1e3;                
x6=0.090*1e3;                
x7=0.04*1e3;                  
x8=0.090*1e3;                
x9=0.090*1e3;          

an_spp= size (spp,1);          
p=11;                          
index_e= 1;              
w2=0.9;                      
j=0;          
x10=0.015*1e3;
 


Die function beginnt so. Dann werden aber noch weiter Dinge definiert irgendwann kommt eine for-Schleife bei der die Berechnung beginnt. Während der Rechnung werden wiederum Matrizen erstellt und Variabelen definiert. Es sind ungefähr 3000 Zeilen. Aufgrund der größe würde ich die handles nicht verwenden weil alle einzelt definiert werden müssen. Das Beispiel mit Eval wird mir nicht ganz deutlich. Hatte schon mal versucht das Programm direkt mit eval zu starten.
Code:

function pushbutton1_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
eval('Programm')
 


Läuft zwar genauso, aber hinterlegt auch keine Spur im WS.
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.