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

Variable aus WS in Edittextfeld anzeigen

 

Tobi1892
Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 05.11.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.12.2014, 12:42     Titel: Variable aus WS in Edittextfeld anzeigen
  Antworten mit Zitat      
Guten Tag,

ich habe ein Simulinkprogramm welches einen Wert berechnet. Diesen Wert übergebe ich mit einem "to workspace" block unter dem Variablenname "testergebnis" in den Matlab WS.

Anschließend will ich den Wert von "testergebnis" in einem Edittextfeld meines GUI anzeigen lassen. Dazu habe ich einen Pushbutton eingefügt der folgendermaßen aussieht:

Code:
function pushbutton2_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton2 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
ergebnis = evalin('base','testergebnis');
set_param('edit2','String', ergebnis)


ich hab mal gegoogelt und den befehl "evalin" gefunden der mir eigentlich helfen sollte.
Als Fehlermeldung wenn ich den Pushbutton anklicke bekomme ich nun aber

"Error using evalin
Undefined function or variable 'testergebnis'."

also scheint ja die variable garnciht richtig im workspace erzeugt zu werden oder verstehe ich da irgendwas falsch?

vielen dank und beste grüße tobi
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: 27.12.2014, 17:33     Titel:
  Antworten mit Zitat      
Hallo,

verwende doch den Debugger. Damit kannst du überprüfen, ob es eine Variable testergebnis gibt und wenn ja, in welchem Workspace.
Grundsätzlich halte ich nichts davon, den Base Workspace als Zwischenablage für alle Variablen zu missbrauchen. Siehe hier für Alternativen:
http://de.mathworks.com/help/matlab.....llbacks.html?refresh=true
(nested functions würde ich allerdings nicht verwenden)

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 05.11.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.12.2014, 10:28     Titel:
  Antworten mit Zitat      
also ich habe jetzt nochmal gegoogelt ob du was anderes meinen könntest aber ist debuggen nicht im prinzip die datei laufen lassen? also macht er das dann nciht automatisch? denn dabei bekomme ich keinen fehler angezeigt in matlab sondern erst wenn er die variable benutzen soll von der er der meinung ist sie nicht zu haben. außerdem wird die ja erst erzeugt wenn das simulinkmodell gelaufen ist, da es vorher ja garkein ergebnis gibt oder nciht?

beste grüße tobi
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: 30.12.2014, 10:40     Titel:
  Antworten mit Zitat      
Hallo,

Debuggen ist quasi ein schrittweises Laufenlassen.
Wenn du den Code einfach so laufen lässt, hast du am Ende die Fehlermeldung, siehst aber nicht mehr den Inhalt der Workspaces. Mit Debuggen eben schon.

Zitat:
denn dabei bekomme ich keinen fehler angezeigt in matlab sondern erst wenn er die variable benutzen soll von der er der meinung ist sie nicht zu haben.

Genau. Der nächste Schritt wäre also herauszufinden, ob die Variable zu dem Zeitpunkt existiert und in welchem Workspace.
Zitat:

außerdem wird die ja erst erzeugt wenn das simulinkmodell gelaufen ist, da es vorher ja garkein ergebnis gibt oder nciht?

Das wird so sein, ja. Den Haltepunkt würde ich also zwischen den Lauf des Simulink-Modells und dem versuchten Verwenden der Variable setzen.

Am einfachsten wäre es vermutlich, Out Ports zu verwenden und die Ergebnisse direkt als Rückgabe des sim-Befehls zurückzuholen.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 05.11.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.01.2015, 15:30     Titel:
  Antworten mit Zitat      
Kannst du das mit den Outports näher erläutern? Das sagt mir garnichts^^

Vielen dank:)
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: 04.01.2015, 15:34     Titel:
  Antworten mit Zitat      
Hallo,

Block "Out" aus Bibliothek "Sinks".

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