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

Eingegebner Wert als Callbackbefehl verwenden

 

Gast90

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.11.2012, 10:12     Titel: Eingegebner Wert als Callbackbefehl verwenden
  Antworten mit Zitat      
Guten Morgen,

ich habe mir eine ganz nette Gui programmiert, die auch so weit funktioniert. Nur die Verbindung zwischen der Eingabe in einem Editfeld und starten der Funtion mit den eingegebenen Werten, will mir nicht so recht gelingen.
Also genauer zu meinem Problem: Ich möchte das ich über die Eingabe in einem Editfeld meine Funktion die eine Flaeche berechnet, starten will.

Mein Code sieht erstmal wie folgt aus:
Code:
uicontrol(fig1,'units','normalized','position',[0.5 0.9 0.4 0.05],'style','edit','callback','flaeche()','backgroundcolor',[255/255 255/255 255/255],'string','');


Mein Idee wäre, dass ich ein Befehl brauche, der das eingegebene im Editfeld dann bei Betätigung der Entertaste in die grünen Klammern hinter der "flaeche" lädt.
Dann müsste das klappen. Hat jemand eine Ahnung wie der Befehl lautet? oder ist mein Lösungsansatz komplett flasch?

Grüße und besten Dank schonmal


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 06.11.2012, 11:01     Titel:
  Antworten mit Zitat      
Hallo,

ich würde als Callback ein Function Handle verwenden. Hier ein Beispiel aus der Dokumentation:

Code:
figure
uicontrol('Style','slider','Callback',@display_slider_value)

mit
Code:
function display_slider_value(hObject,eventdata)
disp(['Slider moved to ' num2str(get(hObject,'Value'))]);


http://www.mathworks.com/help/relea.....g-code-for-callbacks.html

Was soll denn mit der berechneten Fläche gemacht werden?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast90

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.11.2012, 13:48     Titel:
  Antworten mit Zitat      
Harald, damit kann ich leider nichts anfangen. Habe die letzten 2,5 h Stunden alles probiert.

Kann ich mir nicht die Eingabe im Editfeld dann irgendwie im Commandwindow ausspucken lassen? Ich glaube das würde funktionieren um das Flächenprogramm zu starten.
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 06.11.2012, 15:39     Titel:
  Antworten mit Zitat      
Hallo,

was genau hast du denn probiert?

Ich hätte mir das z.B. in der Form gedacht:

Code:
uicontrol(fig1,'units','normalized','position',[0.5 0.9 0.4 0.05],'style','edit','callback',@(hObject, evtdata) flaeche(str2double(get(hObject, 'String'))),'backgroundcolor',[255/255 255/255 255/255],'string','');  


Sauberer wäre es vielleicht, wenn du zunächst überprüfst, ob eine sinnvolle Eingabe gemacht wurde. Dann würde ich das so schreiben:
Code:
uicontrol(fig1,'units','normalized','position',[0.5 0.9 0.4 0.05],'style','edit','callback',@berechne_flaeche,'backgroundcolor',[255/255 255/255 255/255],'string','');  

mit
Code:
function berechne_flaeche(hObject, evtdata)
eintrag = str2double(get(hObject, 'string'));
if isnan(eintrag) || % andere Tests
warndlg('Das war nix!')
else
flaeche(eintrag)
end


Hast du dir schon mal GUIDE angesehen? Ich finde das Entwerfen einer GUI mit GUIDE als deutlich angenehmer als mit uicontrol. Das sollte vor allem beim Einstieg zutreffen.

Grüße,
Harald
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.