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

Variablen aus Textfeld einlesen und weiter verarbeiten

 

retsam
Forum-Century

Forum-Century


Beiträge: 112
Anmeldedatum: 23.09.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.11.2014, 19:58     Titel: Variablen aus Textfeld einlesen und weiter verarbeiten
  Antworten mit Zitat      
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)
if ispc && 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)


Ich bekomme jedoch immer einen Fehler.

Code:
Error in Gui_2 (line 42)
    gui_mainfcn(gui_State, varargin{:});

Error in @(hObject,eventdata)Gui_2('pushbutton2_Callback',hObject,eventdata,guidata(hObject))

Nun bin ich Neuling auf dem Gebiet und würde gern einfach das von mir geschriebene Script aus MatLab in eine Gui übertragen (als StandAlone).

Kann mir vll. jemand bei diesem Problem helfen?

Greetz Danke

Retsam
Private Nachricht senden Benutzer-Profile anzeigen


Borste
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 56
Anmeldedatum: 18.04.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.11.2014, 12:51     Titel:
  Antworten mit Zitat      
Moin,

meinst du etwa so:
Code:
function varargout = GUI(varargin)

% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @GUI_OpeningFcn, ...
                   'gui_OutputFcn',  @GUI_OutputFcn, ...
                   'gui_LayoutFcn',  [] , ...
                   'gui_Callback',   []);
if nargin && ischar(varargin{1})
    gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
    gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT


% --- Executes just before GUI is made visible.
function GUI_OpeningFcn(hObject, eventdata, handles, varargin)

handles.output = hObject;

% Update handles structure
guidata(hObject, handles);



% --- Outputs from this function are returned to the command line.
function varargout = GUI_OutputFcn(hObject, eventdata, handles)

varargout{1} = handles.output;



function edit1_Callback(hObject, eventdata, handles)



% --- Executes during object creation, after setting all properties.
function edit1_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end


% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)

handles.Eingabewert = str2double(get(handles.edit1,'string'));
set(handles.text1,'string',sprintf('%.2f',handles.Eingabewert));

guidata(hObject, handles);


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.

Beste Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
retsam
Themenstarter

Forum-Century

Forum-Century


Beiträge: 112
Anmeldedatum: 23.09.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.11.2014, 19:59     Titel:
  Antworten mit Zitat      
Hallo Zusammen,

danke Borste für die Antwort.
Habe ich das Richtig verstanden, dass ich die eingelesenene Variablen mit
Code:

handles.Eingabewert = str2double(get(handles.edit1,'string'));
set(handles.text1,'string',sprintf('%.2f',handles.Eingabewert));

Einlesen, weiterverarbeiten und Ausgeben kann?


Der Logik folgend wäre dann:
Code:

handles.Eingabewert1 = str2double(get(handles.edit2,'string'));
set(handles.text2,'string',sprintf('%.2f',handles.Eingabewert1));

 


die logische Fortsetzung?
Diese sollten dann auch in der Umgebung vorhanden sein und ich kann damit dann weiterarbeiten?

Greetz und Danke

Ret
Private Nachricht senden Benutzer-Profile anzeigen
 
retsam
Themenstarter

Forum-Century

Forum-Century


Beiträge: 112
Anmeldedatum: 23.09.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.11.2014, 20:42     Titel:
  Antworten mit Zitat      
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 axes which is default axes1
imshow(dateien) %displays image in axes1
 

....


Code:

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 axes which is default axes1
imshow(X3) %displays image in axes1
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Borste
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 56
Anmeldedatum: 18.04.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.11.2014, 22:58     Titel:
  Antworten mit Zitat      
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


Wenn du zwei Werte über zwei Felder einlesen und ausgeben willst hast du das schon richtig beschrieben so:

Code:
handles.Eingabewert1 = str2double(get(handles.edit1,'string'));
set(handles.text1,'string',sprintf('%.2f',handles.Eingabewert1));

handles.Eingabewert2 = str2double(get(handles.edit2,'string'));
set(handles.text2,'string',sprintf('%.2f',handles.Eingabewert2));

guidata(hObject, handles); % Und wieder hiermit die handles speichern


Daher probier einfach mal aus, ob du es hinbekommst die Datei bei der einen pushbutton-funktion einzulesen, am ende der Funktion ein
Code:
guidata(hObject, handles)
dranhängen und in der anderen pushbutton-Funktion die Datei dann auszugeben.
Private Nachricht senden Benutzer-Profile anzeigen
 
retsam
Themenstarter

Forum-Century

Forum-Century


Beiträge: 112
Anmeldedatum: 23.09.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.11.2014, 22:06     Titel:
  Antworten mit Zitat      
Vielen Dank,
du konntest mir weiterhelfen.

Beste Grüße
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.