Verfasst am: 20.11.2014, 19:58
Titel: Variablen aus Textfeld einlesen und weiter verarbeiten
Guten Abend zusammen,
ich vermute mal, dass es einen Einfachen weg gibt. Ich habe auch schon versucht zu suchen aber nichts passendes für mich gefunden.
Folgendes Problem liegt vor:
Ich habe ein Textfeld (eig. mehrere) und möchte den eingegebenen Wert gern in einem Static Textfeld nach dem Betätigen eines PushButtons angezeigt bekommen (erstmal zur Kontrolle). Eigentlich soll dieser Wert hinterher für eine Berechnung zur Verfügung stehen.
Folgender Quellcode liegt vor:
Code:
function edit1_CreateFcn(hObject, eventdata, handles) % hObject handle to edit1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called global VariablenName
% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER set(handles.edit1,'String',VariablenName) ifispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white');
end
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) set(handles.text1,'string', VariablenName)
wenn du im Matlab-Command Window guide eingibst, kannst du eine GUI erstellen und Matlab generiert automatisch einen Quellcode, in dem du dann nur noch programmieren musst, was bei welchem Button etc. passieren soll.
mit guidata(hObject, handles) stellst du sicher, dass die handles in allen functions der GUI bekannt sind und aufgerufen werden können. Damit umgehst du das festlegen einer globalen Variablen, da eine globale Variable gerne vermieden wird.
Hallo,
vielen Dank für den Tip,
wenn ich aber nun bei PushButton1 eine Datei (Bild) lade und es bei PushButton zwei auswerten will, wie mache ich das?
Im momment sieht es bei mir wie folgt aus:
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) [dateien, pfad] = uigetfile('*.*', 'Auswählen der Dateien', 'MultiSelect', 'on'); % öffne die Dateien
%if ~iscell(dateien)% wenn nur eine Datein ausgewält wurde setzte Zähler auf eins. % dateien = {dateien}; % end % Ende der Schleife
%zaehler = numel(dateien); % Zähle die Anzahl der geöffneten Dateien
%daten =cell(1, zaehler); % speicher platz reservieren
%for ik = 1 : zaehler;% Schleife durchlaufen bis Anzahl Dateien erreicht % daten{ik} = load(fullfile(pfad, dateien{ik})); % Lade die Dateien nacheinander
%end axis(handles.axes1); %setting the image in axes1 component -look at thag property of axeswhichis default axes1
imshow(dateien) %displays image in axes1
function pushbutton3_Callback(hObject, eventdata, handles) % hObject handle to pushbutton3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
BW = imread(dateien);
Gray=rgb2gray(BW);
thresh = graythresh(Gray);
[y,x] = size(Gray);
BWPic = im2bw(Gray,thresh);
X2 = imclose(BWPic,strel('disk',2));
X3 = medfilt2(X2);
axis(handles.axes1); %setting the image in axes1 component -look at thag property of axeswhichis default axes1
imshow(X3) %displays image in axes1
hm, das ist grad bisschen wirr.. was für ein format hat denn deine eingelesene datei??
zunächst ist es so:
Code:
handles.Eingabewert = str2double(get(handles.edit1,'string')); % Wert wird eingelesen und unter handles.Eingabewert gespeichert set(handles.text1,'string',sprintf('%.2f',handles.Eingabewert)); % Wert wird im Ausgabefeld ausgegeben guidata(hObject, handles); % die handles der Funktion werden gespeichert, damit man sie in anderen GUI-Funktionen aufrufen kann
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.