Verfasst am: 24.06.2009, 14:11
Titel: Eingetippten Zahlenwert in Code nutzen
Hallo zusammen,
leider habe ich im Forum soweit keine Hilfe gefunden, daher hier mein Problem:
Ich habe einen GUI geschrieben in der ich zwei zahlenwerte eingeben kann. Ich möchte nun diese beiden Zahlen zur weiteren Berechnung in einem Skript nutzen. Also in einem Skript zuerst das GUI aufrufen, dann OK drücken und dann mit den daraus erhaltenen Werten weiterrechnen. Leider schaffe ich es nicht eine entsprechende Matrix zu erzeugen, auf die ich dannim Code zurückgreifen kann. Hier die Kurzform meines GUI-pushbutton1_Callback-Codes:
Code:
function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
first = get(handles.a,'String');
last = get(handles.b,'String');
setappdata(gcf, 'F', num2str(first));
setappdata(gcf, 'L', num2str(last));
eins = getappdata(gcf, 'F')
zwei = getappdata(gcf, 'L') guidata(hObject, handles);
close
das liegt daran, das die Variablen im Workspace deiner Funktion liegen und auch (bis auf weiteres) nur dort verfügbar sind. Eine Möglichkeit wäre mit ASSIGNIN zu arbeiten, was ich aber in diesem Fall nicht empfehle.
Schau mal ob ganz oben in deinem m-file für das GUI
function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
first = get(handles.a,'String');
last = get(handles.b,'String');
setappdata(gcf, 'F', num2str(first));
setappdata(gcf, 'L', num2str(last));
eins = getappdata(gcf, 'F')
zwei = getappdata(gcf, 'L') varargout{1} = eins;
varargout{2} = zwei;
guidata(hObject, handles);
close
In deinem Skript musst du dann als Aufruf folgendes schreiben:
Code:
[ersterWert, zweiterWert] = DeinGuiName; % damit bekommst du beide Werte zurück % erstererWert = DeinGuiName; % damit bekommst du NUR den ersten Wert zurück
dank Dir erstmal:-)
ansich klappt es nämlich soweit, allerdings gibt er mir nicht die eingegebene Zahl wieder sondern irgendwas um die 400 wieder. Hab ich da irgendwo noch nen Konvertierungsfehler drin?
Gruß
Kathy
Mmh, will er auch nicht. Kommt immernoch auf seine 400:-(
Noch ne Idee?
Code im GUI
Code:
function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
first = get(handles.a,'String');
last = get(handles.b,'String');
setappdata(gcf, 'F', str2double(first));
setappdata(gcf, 'L', str2double(last));
eins = getappdata(gcf, 'F')
zwei = getappdata(gcf, 'L') varargout{1} = eins;
varargout{2} = zwei;
guidata(hObject, handles);
close
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
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.