Verfasst am: 25.06.2010, 09:29
Titel: Text aus Editfeld ausgeben
Guten Tag,
auf meiner GUI befinden siche in Pop-Menü und zwei Editfelder. Wählt der User aus dem Pop einen Variabele aus erscheint diese im Editfeld 1 und über das Editfeld 2 kann dann der Variabelen eine Zahl zugeordnet werden.
Nun habe ich das Problem das ich keine Buchstaben auslesen kann. Ich will hinter z.B. t1=100 haben, aber für Editfeld 1 (t1) kommt dann NaN.
Ja du hast recht, hatte erst versucht mit num2str zu arbeiten, klappt aber nur mit eval.
Gibt es denn auch eine Möglichkeit zwei ausgelesene Felder einer Variablenen zu zuordnen?
Code:
function e2_Callback(hObject, eventdata, handles) % hObject handle to e2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of e2 as text % str2double(get(hObject,'String')) returns contents of e2 as a double
zeit = get(handles.e2,'String');
zeit = str2double(zeit)
Dann benutze doch SPRINTF oder [] um STRINGS zusammenzusetsen
oder meinst doch was anderes?
Code:
function e2_Callback(hObject, eventdata, handles) % hObject handle to e2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of e2 as text % str2double(get(hObject,'String')) returns contents of e2 as a double
zeit = get(handles.e2,'String');
zeit = str2double(zeit)
Wo soll es denn ausgegeben werden?
Und was klappt nicht?
Code:
function e2_Callback(hObject, eventdata, handles) % hObject handle to e2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of e2 as text % str2double(get(hObject,'String')) returns contents of e2 as a double
Value = get(handles.e2,'String');
Value = str2double(Value )
Vom Prinzip her klappt es so, aber es wird nicht die ausgewählte Variabele des Pop-up gleich gesetzt sondern einfach nur Value=Eingabewert.
Code:
function popupmenu1_Callback(hObject, eventdata, handles) % hObject handle to popupmenu1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
% Hints: contents = get(hObject,'String') returns popupmenu1 contents as cell array % contents{get(hObject,'Value')} returns selected item from popupmenu1
contents = get(hObject,'String');
index = get(hObject,'Value');
set(handles.e2,'String', index);
set(handles.e1,'String', contents(index,:));
function e2_Callback(hObject, eventdata, handles) % hObject handle to e2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of e2 as text % str2double(get(hObject,'String')) returns contents of e2 as a double
Value = get(handles.e2,'String');
Value = str2double(Value)
Eigentlich sollte aber im Pop-up z.B. t1 ausgewählt werden, das erscheint dann in Editfeld e1 und im Editfeld e2 lässt sich dann der Variabelen t1 einen Wert von z.B. 100 zuordnen. Die ausgabe soll dann sein im Commandwindow t1=100. Das will aber leider nicht funzen...
Tja das ist komisch, ich verstehe das nicht warum es nicht klappen will, kannst du vielleicht deine Files anhängen?
setze doch Breakpoint in Popupmenu1_Callback und e2_Callback und schaue was dort übergeben/gesetzt wird?
verbessere noch in Popup folgende Fehler
Code:
function popupmenu1_Callback(hObject, eventdata, handles) % hObject handle to popupmenu1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
% Hints: contents = get(hObject,'String') returns popupmenu1 contents as cell array % contents{get(hObject,'Value')} returns selected item from popupmenu1
contents = get(hObject,'String');
index = get(hObject,'Value');
% hier in STRING konvertieren set(handles.e2,'String', sprintf('%d',index));
% Inhalt aus cell übergeben set(handles.e1,'String', contents{index});
function e2_Callback(hObject, eventdata, handles) % hObject handle to e2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of e2 as text % str2double(get(hObject,'String')) returns contents of e2 as a double
Value = get(handles.e2,'String');
Value = str2double(Value)
Gibt es in der Verbindung dazu eigentlich keine Möglichkeit die Werte die jetzt den Variabelen zugeordnet sind bzw. die Variabelen mit Value im Workspace zu hinterlegen.
Wenn ich eine normale M-file berechnung durchführe ist es mir möglich die vorhanden Variabelen über das Commandwindow aufzurufen. Arbeite ich aber mit den function der GUI werden die Werte einmal angezeigt und danach gehen diese direkt wieder verloren.
function popupmenu1_Callback(hObject, eventdata, handles) % hObject handle to popupmenu1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
% Hints: contents = get(hObject,'String') returns popupmenu1 contents as cell array % contents{get(hObject,'Value')} returns selected item from popupmenu1
contents = get(hObject,'String');
index = get(hObject,'Value');
% hier in STRING konvertieren set(handles.e2,'String', sprintf('%d',index));
% Inhalt aus cell übergeben set(handles.e1,'String', contents{index});
function e2_Callback(hObject, eventdata, handles) % hObject handle to e2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of e2 as text % str2double(get(hObject,'String')) returns contents of e2 as a double
Value = get(handles.e2,'String');
Value = str2double(Value)
function emani_i_Callback(hObject, eventdata, handles) % hObject handle to emani_i (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of emani_i as text % str2double(get(hObject,'String')) returns contents of emani_i as a double
emani_i= get(handles.emani_i,'String');
emani_i= str2double(emani_i);
warum bekomme ich dann eine Fehlermeldung? Kann ich eine Variabele nicht einfach mit evalin dem WS zuführen? Muss diese immer mit sprintf gebildet sein?
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.