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

verschiedene handles bei unterschiedlichen function-Aufrufen

 

Hingen

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.03.2012, 13:01     Titel: verschiedene handles bei unterschiedlichen function-Aufrufen
  Antworten mit Zitat      
Hallo,

habe folgendes Problem: Ich rufe in einer Gui eine Function aus einer anderen heraus auf. Diese wird auch ausgeführt, jedoch werden bestimmte werte nicht zugewiesen bzw. gespeichert. Wenn ich function über einen button bzw. über Eingabe in ein edit-Feld aufruft funkzioniert alles ohen Probleme.

Die aufgerufene function ist:
Code:
function edit_samplefrequency_Callback(hObject, eventdata, handles)

             
handles.samplefrequency=str2num(get(handles.edit_samplefrequency,'String'))
a=length(handles.samplefrequency)

S=size(handles.data_cube_cut);
if a>0    
    handles.TimeOfCube=handles.framesOfCube/handles.samplefrequency;
    set(handles.text_timeOfCube,'String',num2str(S(3)/handles.samplefrequency))
    handles.timevec=[1/handles.samplefrequency:1/handles.samplefrequency:handles.framesOfCube/handles.samplefrequency];
   
    handles.frequenzSet=1;    
else
    handles.frequenzSet=0;
   
end

clear a

set(handles.text_importFrequency,'String',num2str(handles.samplefrequency))

handles.SaveFrequency=handles.samplefrequency;
handles.sampleFrequSET=1;

guidata(hObject, handles);


Der Wert für
Code:
handles.sampleFrequSET=1
wird in einer anderen function abgefragt.

Wenn ich die function über eine Eingabe in das Edit-Feld ausslöse funktioniert dies.
Wenn ich es aus einer anderen function mittels
Code:
edit_samplefrequency_Callback(hObject, eventdata, handles)
bleibt der Wert von
Code:
handles.sampleFrequSET
auf dem Wert, mit dem er initialisiert wurde.

Viel Dank für eure Hilfe und beste Grüße aus Österreich


Gast1

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.03.2012, 14:20     Titel:
  Antworten mit Zitat      
Hi,
wenn du
Code:

edit_samplefrequency_Callback(hObject, eventdata, handles)
 

aus einer anderen Funktion aufrufst, kennt die andere Funktion nur die alte handles Struktur mit der sie aufgerufen wurden.

Man könnte jetzt z.B. die handles nochmal neu laden:

Code:

edit_samplefrequency_Callback(hObject, eventdata, handles)
handles=guidata(hObject);
 
 
Hingen

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.03.2012, 14:55     Titel:
  Antworten mit Zitat      
Hallo Gast1

das Problem ist nicht, dass die function
Code:
edit_samplefrequency_Callback(hObject, eventdata, handles)
die handles nicht kennt (das tut sie sogar, da sämtliche Einträge in der OpeningFuction initialisiert werden), sondern dass die nachfolgend aufgerufenen function den alten Wert ausliest. Also der neue Wert nicht auf
Code:
handles.sampleFrequSET
geschrieben wird.
Allerdings ist dies nur der Fall wenn aus einer anderen function aufgrufen wird. Wenn die function über die Eingabe ins Editfeld ausgelöst wird, wird der richtige Wert geschrieben und die nachfolgende function liest den richtigen Wert aus.

Deinen Vorschlag habe ich breits versucht. Hat leider nichts geholfen. Trotzdem Danke.

BG Hingen
 
Marco H.
Forum-Guru

Forum-Guru


Beiträge: 404
Anmeldedatum: 12.11.10
Wohnort: Dortmund
Version: 2010a/2012b
     Beitrag Verfasst am: 20.03.2012, 19:16     Titel:
  Antworten mit Zitat      
Hey,
Zitat:

Allerdings ist dies nur der Fall wenn aus einer anderen function aufgrufen wird

Das bedeutet doch, dass das handles Struct in der function von der du den edit_samplefrequency_Callback manuell aufrufst nicht auf dem aktuellen Stand ist. Ich weiß nicht aus welcher function du den Callback aufrufen willst und wie du ihr die handles zugewiesen hast.

Greetings
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.