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

Edit Text ändern in GUI funktioniert nicht

 

Berger1012
Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 12.12.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.01.2019, 20:06     Titel: Edit Text ändern in GUI funktioniert nicht
  Antworten mit Zitat      
Hallo zusammen,
ich bin grad dabei eine GUI zu schreiben, bei der ich durch Edit Textfelder eine beliebige Geschwindigkeit und Masse eingeben kann und mir durch ein Static Textfeld die zugehörige Energie ausgegeben wird. Dies geschieht mit der Formel E=0.5*m*v².

Folgende Elemente habe ich bereits erstellt:
1. GUI.fig
2. Energie.m
3. CB_Masse.m
4. CB_Geschwindigkeit.m

Folgendes Problem habe ich:
Wenn ich den Script "Energie.m" ausführe öffnet sich die GUI und gibt mir für die voreingestellten Werte die Berechnung der Energie aus. Wenn ich nun allerdings die Werte für die Masse und die Geschwindigkeit ändere, dann ändert sich nichts an der Ausgabe, das heißt die neu eingegebenen Daten werden nicht berechnet. Im Workspace sehe ich zwar, dass die Daten eingelesen werden, jedoch geschieht weiter nichts. Wo ist mein Fehler?

Ich möchte mich an dieser Stelle schon im voraus für jede Hilfe bedanken!

Hier sind die zugehörigen Codes:
1. GUI.fig
siehe Screenshot im Anhang

2. Energie:
Code:
%% GUI öffnen
open('GUI.fig');

%% Handles holen
GUI.Handles = guihandles();

%% Daten in GUI einlesen
CB_Masse;
CB_Geschwindigkeit;

v = str2double(Geschwindigkeit);
m = str2double(Masse);
%% Energie Berechnen
E = 0.5*m*v.^2;

%% Energie eintragen
GUI.Handles.st_Energie.String = E;
E = GUI.Handles.st_Energie.String;


3. CB_Masse:
Code:
%% Dateneingabe in Feld lesen
Masse = GUI.Handles.et_Masse.String;


4. CB_Geschwindigkeit:
Code:
%% Dateneingabe in Feld lesen
Geschwindigkeit = GUI.Handles.et_Geschwindigkeit.String;


GUI.fig.jpg
 Beschreibung:

Download
 Dateiname:  GUI.fig.jpg
 Dateigröße:  24.99 KB
 Heruntergeladen:  327 mal
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


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

du musst die Callbacks auch mit den GUI-Elementen verlinken.
Mein Vorschlag für Oberflächen ist App Designer. Das ist am leichtesten zu bedienen.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Berger1012
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 12.12.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.01.2019, 16:13     Titel:
  Antworten mit Zitat      
Vielen Dank für deine Antwort. Wie und wo verlinke ich das ganze denn am Besten? Ich weiß nämlich leider nicht wie ich das machen soll.

Den App-Designer kann ich leider nicht verwenden, da dies hier eine Übung von der Hochschule zur Prüfungsvorbereitung ist und hierfür der App-Designer nicht zugelassen ist.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

darfst du GUIDE verwenden? Dort hast du die Möglichkeit auch.

Ansonsten dürfte es bei solchen Objekten eine Eigenschaft Callback geben, die du setzen kannst.
Irgendwie scheint ihr eine Mischung zwischen programmatischem Ansatz und Arbeiten mit GUIDE zu verfolgen.

Einer dieser beiden Links sollte aber helfen:
https://www.mathworks.com/help/matl.....g-the-guide-workflow.html
https://www.mathworks.com/help/matl.....rogrammatic-workflow.html

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Berger1012
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 12.12.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.01.2019, 16:36     Titel:
  Antworten mit Zitat      
Vielen Dank. Ich schau mir das Ganze mal an.
Ja,GUIDE dürfen wir verwenden.
Private Nachricht senden Benutzer-Profile anzeigen
 
Berger1012
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 12.12.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.01.2019, 17:26     Titel:
  Antworten mit Zitat      
Ok, komme trotzdem nicht weiter. Bin glaub ich einfach nicht fürs Programmieren geschaffen.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

Zitat:
Ok, komme trotzdem nicht weiter.

Wenn du eine konkrete Frage hast, kann man gerne helfen.

Bei GUIDE kannst du Elemente rechtsklicken und auf "View Callbacks" --> "Callback" gehen. Dann wird im zugehörigen .m die Callback-Funktion erstellt, und an der Stelle musst du eintragen, was dann passieren soll.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Berger1012
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 12.12.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.01.2019, 18:04     Titel:
  Antworten mit Zitat      
Da in der GUIDE bei den Callbacks steht bei mir überall das Richtige drin.

Meine Frage hat sich eigentlich nicht verändert. Wenn ich das Programm ausführe und die Werte für Geschwindigkeit und Masse ändere dann ließt er diese ja ein. Jedoch wird dann anschließend die Berechnung der Energie nicht geändert. Wieso? Und wie genau kann ich das Lösen?
Private Nachricht senden Benutzer-Profile anzeigen
 
Berger1012
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 12.12.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.01.2019, 18:10     Titel:
  Antworten mit Zitat      
Hier noch ein Screenshot wie das Ganze aussieht, wenn ich das Programm starte und die Zahl der Energie auf 5 abändere. Im Workspace sieht man dann auch, dass die Zahl 5 eingelesen wurde. Der ursprüngliche Wert wird beim Start gleich angezeigt und ist 1400.

Screenshot Energie Run.jpg
 Beschreibung:

Download
 Dateiname:  Screenshot Energie Run.jpg
 Dateigröße:  205.48 KB
 Heruntergeladen:  332 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

Zitat:
Meine Frage hat sich eigentlich nicht verändert.

Bis ich danach gefragt habe, war überhaupt nicht klar, dass du GUIDE verwendest.

Zitat:
Da in der GUIDE bei den Callbacks steht bei mir überall das Richtige drin.

Anscheinend nicht. Um genaueres sagen zu können, müsstest du die GUI (.fig + .m) zur Verfügung stellen. Bitte als Anhänge, nicht als Screenshots.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Berger1012
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 12.12.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.01.2019, 20:18     Titel:
  Antworten mit Zitat      
Dann möchte ich mich an dieser Stelle bei dir erstmal entschuldigen. Ich programmiere erst seit kurzem und bin der Meinung gewesen, dass dieses GUIDE immer für GUI's verwendet wird.

Anbei sende ich jetzt die gesamten Daten.

CB_Geschwindigkeit.m
 Beschreibung:

Download
 Dateiname:  CB_Geschwindigkeit.m
 Dateigröße:  88 Bytes
 Heruntergeladen:  348 mal
CB_Masse.m
 Beschreibung:

Download
 Dateiname:  CB_Masse.m
 Dateigröße:  68 Bytes
 Heruntergeladen:  331 mal
Energie.m
 Beschreibung:

Download
 Dateiname:  Energie.m
 Dateigröße:  364 Bytes
 Heruntergeladen:  336 mal
GUI.fig
 Beschreibung:

Download
 Dateiname:  GUI.fig
 Dateigröße:  8.99 KB
 Heruntergeladen:  336 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

bei GUIDE sollte es zu einer GUI.fig auch eine GUI.m geben. Und dort...

Zitat:
Bei GUIDE kannst du Elemente rechtsklicken und auf "View Callbacks" --> "Callback" gehen. Dann wird im zugehörigen .m die Callback-Funktion erstellt, und an der Stelle musst du eintragen, was dann passieren soll.


Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
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 - 2024 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.