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

Matlab Gui: Automatische Wertübergabe in den Workspace

 

christian1234

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.11.2013, 10:37     Titel: Matlab Gui: Automatische Wertübergabe in den Workspace
  Antworten mit Zitat      
Hallo zusammen,

ich schreibe gerade an einer Gui bei der man zunächst Parameter für eine umfangreiche Berechnung in Textfelder eingibt. Einige dieser Werte möchte ich aber standardmäßig vorgeben, da diese idR. immer gleich sind und ich bei Parametervariationen nicht immer alle Werte neu eingeben muss/will. Bis jetzt sieht das im Bsp. so aus:

Code:

function x_Callback(hObject, eventdata, handles)
% hObject    handle to x (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
x = str2double(get(hObject,'String'));
assignin('base','x',x);
 


Frage: Wie kann ich x allgemein vorgeben und automatisch in den workspace übergeben? Dabei soll der Wert beim öffnen der Benutzeroberfläche automatisch in dem Textfeld erscheinen und automatisch in den workspace übernommen werden OHNE das ich den wert nochmal mit ENTER bestätigen muss.

Vielen Dank im Voraus!


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.11.2013, 11:20     Titel:
  Antworten mit Zitat      
Hallo,

das Arbeiten mit assignin ist generell keine gute Idee. Daten in GUIs sollten mit einem der hier angesprochenen Mechanismen verwaltet werden:
http://www.mathworks.de/de/help/mat.....-data-in-a-guide-gui.html

Initialisierungen einer GUI sollten in der OpeningFcn gemacht werden.

Wenn bei einem Objekt (zeitweise) keine Änderung vorgenommen werden soll, würde ich die enable-Eigenschaft entsprechend setzen.

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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.11.2013, 18:51     Titel:
  Antworten mit Zitat      
Ok danke für die schnelle Antwort,

ich habe versucht aus der Hilfe in dem Link schlau zu werden konnte mein Problem jedoch nicht lösen.

Könntest du an einem Beispiel erklären wie ich ein edit_text feld beim Start der Gui mit einem Wert Versehe der dann beim Drücken eines Buttons ohne jegliches weiteres zutun eingelesen und weiter verwendet werden kann?! (dh. gui öffnet sich und der Wert steht bereits da) ...denn sobald ich den Wert über die Callback Funktion auslesen will muss ich den nach starten meiner Gui auf der oberfläche verändern oder zumindest mit enter bestetigen sonst wird dieser nicht erkannt.

danke!
 
geieraffe
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 97
Anmeldedatum: 19.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.11.2013, 14:57     Titel:
  Antworten mit Zitat      
Hast du dem Feld in der OpeningFnc mit
Code:
set(<Object>,'String') = x

den Wert zugewiesen? Ist x ein String? sonst versuche num2str()
Private Nachricht senden Benutzer-Profile anzeigen
 
christian1234

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.11.2013, 20:53     Titel:
  Antworten mit Zitat      
Ja so hab ich der Variablen den Wert zugewiesen aber wie kann ich die nun dem workspace übergeben ohne sie in der offenen gui nochmals zu bestetigen? Bei der Variante mit der callbackfunktion des edit_text's (wie oben zu sehen) klappt das nicht ohne...
 
Harald
Forum-Meister

Forum-Meister


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

bitte mal eine GUI (.m & .fig) anhängen, bei der das Problem auftritt.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
geieraffe
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 97
Anmeldedatum: 19.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.11.2013, 08:50     Titel:
  Antworten mit Zitat      
Welchem Workspace willst du sie denn zuweisen? 'base'?
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.11.2013, 15:11     Titel:
  Antworten mit Zitat      
Ja ich würde es gerne dem Workspace 'base' übergeben.

Ich habe hier mal Beispielhaft eine GUI angefügt. Dort kann man 2 Variablen selbst festlegen die dann nach dem Drücken auf den Berechnen- Button für eine wilkürliche Berechnung verwendet werden. wie gesegt die default werte kann ich angeben aber diese werden nicht automatisch in den workspace übertragen und somit auch nicht für die Berechnung. damit die werte Berücksichtigt werden muss ich sie entweder mit enter bestätigen oder neu eingeben. wäre super wenn einer von euch diese so abändern kann das diese GUI meinen oben aufgeführten vorstellungen entspricht bzw das oben genannte kann.

Vielen Dank

test.fig
 Beschreibung:

Download
 Dateiname:  test.fig
 Dateigröße:  2.75 KB
 Heruntergeladen:  405 mal
test.m
 Beschreibung:

Download
 Dateiname:  test.m
 Dateigröße:  4.8 KB
 Heruntergeladen:  408 mal
 
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.11.2013, 20:07     Titel:
  Antworten mit Zitat      
Hallo,

assignin und evalin sind hier absolut unnötig.

Angehängt ein einfacherer, funktionierender Weg.

Grüße,
Harald

test.m
 Beschreibung:

Download
 Dateiname:  test.m
 Dateigröße:  4.85 KB
 Heruntergeladen:  441 mal
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.