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

Falscher handle-Wert wird gespeichert

 

savenius
Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 29.12.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.03.2010, 12:12     Titel: Falscher handle-Wert wird gespeichert
  Antworten mit Zitat      
Hallo,

ich hab ein Problem mit einem Wert, der aus einem Popupmenu falsch ausgelesen wird. Dies betrifft als Beispiel den Fall 23, wenn ich diesen so im Popupmenu einstelle.

Code:

case 23
        handles.tau_zahl = 2.0;

 


im Codefragment

Code:

function schwaechung_tau_popupmenu_Callback(hObject, eventdata, handles)


% Nummer des ausgewählten Menue-Eintrags
val = get(hObject,'Value');

switch (val)
    case 1
        handles.tau_zahl = 4.2;
    case 2
        handles.tau_zahl = 4.1;
    case 3
        handles.tau_zahl = 4.0;
    case 4
        handles.tau_zahl = 3.9;
    case 5
        handles.tau_zahl = 3.8;
    case 6
        handles.tau_zahl = 3.7;
    case 7
        handles.tau_zahl = 3.6;
    case 8
        handles.tau_zahl = 3.5;
    case 9
        handles.tau_zahl = 3.4;
    case 10
        handles.tau_zahl = 3.3;
    case 11
        handles.tau_zahl = 3.2;
    case 12
        handles.tau_zahl = 3.1;
    case 13
        handles.tau_zahl = 3.0;
    case 14
        handles.tau_zahl = 2.9;
    case 15
        handles.tau_zahl = 2.8;
    case 16
        handles.tau_zahl = 2.7;
    case 17
        handles.tau_zahl = 2.6;
    case 18
        handles.tau_zahl = 2.5;
    case 19
        handles.tau_zahl = 2.4;
    case 20
        handles.tau_zahl = 2.3;
    case 21
        handles.tau_zahl = 2.2;
    case 22
        handles.tau_zahl = 2.1;
    case 23
        handles.tau_zahl = 2.0;
    case 24
        handles.tau_zahl = 1.9;
     otherwise

end

guidata(hObject, handles)
 


wenn ich jetzt den Wert mit dem Befehl auslese

Code:

K>> get(handles.schwaechung_tau_popupmenu, 'Value')

ans =

    23

 


bekomme ich anschließend den Wert 23. Was im Moment auch richtig ist.
Anschließend kontrolliere ich das handle auf der Konsole

Code:

K>> handles

handles =
                 tau_zahl: 1.9000
 


Eigentlich müsste er doch den Wert 2.0 ausgeben?

Was stimmt da nicht? Bin echt mit meinem Latein am Ende. Crying or Very sad

Gruß Sven
Private Nachricht senden Benutzer-Profile anzeigen


denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 10.03.2010, 12:44     Titel:
  Antworten mit Zitat      
Hallo,

Wo/ An welcher Stelle kontrollierst du handles-Wert?
Vielleicht muss einfach an dieser Stelle deine handles aktualisieren.

Der Code-Ausschnitt, wie es da steht, ist richtig.
Private Nachricht senden Benutzer-Profile anzeigen
 
savenius
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 29.12.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.03.2010, 13:56     Titel:
  Antworten mit Zitat      
Hi Denny,

ich übergebe den handle Wert an eine Button_Callback Funktion.
D.h. wenn ich den Button drücke, wird eine Simulation gestartet.
Wenn ich die Simulation starte soll der Anfangswert berücksichtigt werden,
falls er nicht gesetzt wurde, da es sonst zu einer Fehlermeldung kommt.

Code:

if get(handles.schwaechung_tau_popupmenu,'Value')== 1
      T_r = 4.2;
else
      T_r = handles.tau_zahl;
end
 


Dieser T_r-Wert ist eine konstante die zu der Berechnung benötigt wird.
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 10.03.2010, 14:10     Titel:
  Antworten mit Zitat      
Also,

rufst du in Button irgend welche Funktionen in denen handles verändern werden?

versuch mal folgendes:
Code:

if get(handles.schwaechung_tau_popupmenu,'Value')== 1
      T_r = 4.2;
else
      handles = guidata(hObject )
      T_r = handles.tau_zahl;
end
 
Private Nachricht senden Benutzer-Profile anzeigen
 
savenius
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 29.12.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.03.2010, 16:58     Titel:
  Antworten mit Zitat      
Hi Denny,

schuldigung das ich mich jetzt erst melde. Confused

Danke nochmals für den Tipp, aber es hat irgendwie nichts genutzt. Habe eine alte Backupdatei neu geladen und tata, es funktioniert wieder. Komisch manchmal, oder? Naja, jedenfalls vielen Dank nochmals für Deine Hilfe.

Gruß
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.