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

Variable wird nicht erkannt

 

code88
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 91
Anmeldedatum: 06.02.08
Wohnort: Meinisberg
Version: MATLAB Version 7.8.0.347 (R2009a)
     Beitrag Verfasst am: 09.07.2010, 15:59     Titel: Variable wird nicht erkannt
  Antworten mit Zitat      
Ich möchte eine Variable, die durch ein Textfeld im GUI eingegeben wird, weiter verwenden um etwas zu berechnen. Leider komtt dabei immer der Fehler, das die variable nicht bekannt ist.

Hier der code:
Code:
function varargout = Top_Load_1(varargin)
% TOP_LOAD_1 M-file for Top_Load_1.fig
%      TOP_LOAD_1, by itself, creates a new TOP_LOAD_1 or raises the existing
%      singleton*.
%
%      H = TOP_LOAD_1 returns the handle to a new TOP_LOAD_1 or the handle to
%      the existing singleton*.
%
%      TOP_LOAD_1('CALLBACK',hObject,eventData,handles,...) calls the local
%      function named CALLBACK in TOP_LOAD_1.M with the given input arguments.
%
%      TOP_LOAD_1('Property','Value',...) creates a new TOP_LOAD_1 or raises the
%      existing singleton*.  Starting from the left, property value pairs are
%      applied to the GUI before Top_Load_1_OpeningFcn gets called.  An
%      unrecognized property name or invalid value makes property application
%      stop.  All inputs are passed to Top_Load_1_OpeningFcn via varargin.
%
%      *See GUI Options on GUIDE's Tools menu.  Choose "GUI allows only one
%      instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help Top_Load_1

% Last Modified by GUIDE v2.5 09-Jul-2010 10:03:19

% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @Top_Load_1_OpeningFcn, ...
                   'gui_OutputFcn',  @Top_Load_1_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 Top_Load_1 is made visible.
function Top_Load_1_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% varargin   command line arguments to Top_Load_1 (see VARARGIN)

% Choose default command line output for Top_Load_1
handles.output = hObject;

% Update handles structure
guidata(hObject, handles);

% UIWAIT makes Top_Load_1 wait for user response (see UIRESUME)
% uiwait(handles.figure1);


% --- Outputs from this function are returned to the command line.
function varargout = Top_Load_1_OutputFcn(hObject, eventdata, handles)
% varargout  cell array for returning output args (see VARARGOUT);
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure
varargout{1} = handles.output;


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%



handles.Wert_length = 0;
handles.Wert_width = 0;
handles.Wert_heigth = 0;
guidata(hObject,handles);


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

function length_Callback(hObject, eventdata, handles)
% hObject    handle to length (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 length as text
%        str2double(get(hObject,'String')) returns contents of length as a double

handles.Wert_length = str2double(get(hObject,'String'));
guidata(hObject,handles);
% --- Executes during object creation, after setting all properties.
function length_CreateFcn(hObject, eventdata, handles)

% hObject    handle to length (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end
try
    handles.Wert_length = Wert_length;
    set(hObject,'String',handles.Wert_length);
catch
end
guidata(hObject,handles);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


function width_Callback(hObject, eventdata, handles)
% hObject    handle to width (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 width as text
%        str2double(get(hObject,'String')) returns contents of width as a double

handles.Wert_width = str2double(get(hObject,'String'));
guidata(hObject,handles);
% --- Executes during object creation, after setting all properties.
function width_CreateFcn(hObject, eventdata, handles)
% hObject    handle to width (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end
try
    handles.Wert_width = Wert_width;
    set(hObject,'String',handles.Wert_width);
catch
end
guidata(hObject,handles);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

function heigth_Callback(hObject, eventdata, handles)
% hObject    handle to heigth (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 heigth as text
%        str2double(get(hObject,'String')) returns contents of heigth as a double

handles.Wert_heigth = str2double(get(hObject,'String'));
guidata(hObject,handles);

% --- Executes during object creation, after setting all properties.
function heigth_CreateFcn(hObject, eventdata, handles)
% hObject    handle to heigth (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end
try
    handles.Wert_heigth = Wert_heigth;
    set(hObject,'String',handles.Wert_heigth);
catch
end
guidata(hObject,handles);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% --- Executes on button press in calculate.
function calculate_Callback(hObject, eventdata, handles)
% hObject    handle to calculate (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

 handles.Wert_length = Wert_length;
 handles.Wert_width = Wert_width;
 handles.Wert_heigth = Wert_heigth;

face3=(2.7-Wert_heigth)*Wert_length*Wert_width*100;
face4=(2.7-Wert_width)*Wert_length*Wert_heigth*100;
face6=(2.7-Wert_length)*Wert_width*Wert_heigth*100;

set(handle.Wert_face3,'String',num2str(face3));
set(handle.Wert_face4,'String',num2str(face4));
set(handle.Wert_face6,'String',num2str(face6));

%%%%%%%%%

Woran kann das liegen?
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


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

kannst du vielleicht nochmal den Callback rauskopieren, um den es geht? Ohne fig-File ist das ganze ja nicht lauffähig, und durch den ganzen Code durchzugehen ist doch etwas mühsam.

Danke,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
code88
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 91
Anmeldedatum: 06.02.08
Wohnort: Meinisberg
Version: MATLAB Version 7.8.0.347 (R2009a)
     Beitrag Verfasst am: 09.07.2010, 18:16     Titel:
  Antworten mit Zitat      
Hier soll der Wert eingelesen werden:






Code:

function length_Callback(hObject, eventdata, handles)
% hObject    handle to length (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 length as text
%        str2double(get(hObject,'String')) returns contents of length as a double

handles.Wert_length = str2double(get(hObject,'String'));
guidata(hObject,handles);
% --- Executes during object creation, after setting all properties.
function length_CreateFcn(hObject, eventdata, handles)

% hObject    handle to length (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end
try
    handles.Wert_length = Wert_length;
    set(hObject,'String',handles.Wert_length);
catch
end
 

und hier dann auf Knopfdruck berechnet werden:
Code:
% --- Executes on button press in calculate.
function calculate_Callback(hObject, eventdata, handles)
% hObject    handle to calculate (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

 handles.Wert_length = Wert_length;
 handles.Wert_width = Wert_width;
 handles.Wert_heigth = Wert_heigth;

face3=(2.7-Wert_heigth)*Wert_length*Wert_width*100;
face4=(2.7-Wert_width)*Wert_length*Wert_heigth*100;
face6=(2.7-Wert_length)*Wert_width*Wert_heigth*100;

set(handle.Wert_face3,'String',num2str(face3));
set(handle.Wert_face4,'String',num2str(face4));
set(handle.Wert_face6,'String',num2str(face6));

 
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

in der CreateFcn wird Wert_length verwendet, ohne dass es vorher (in diesem Workspace) definiert worden wäre - soweit ich sehen kann.

Zudem würde ich Initialisierungen eher in die OpenFcn schreiben.

Ansonsten hilft bei sowas grundsätzlich ein lauffähiges Minimalbeispiel.

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

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 91
Anmeldedatum: 06.02.08
Wohnort: Meinisberg
Version: MATLAB Version 7.8.0.347 (R2009a)
     Beitrag Verfasst am: 12.07.2010, 07:34     Titel:
  Antworten mit Zitat      
Ja ein Beispiel wäre hilfreich.

Die Definitionen für ein GUI verstehe ich noch nicht ganz.

Hat jemand ein laufähiges Beispiel mit einem GUI?
Ein Wert soll eingetragen werden, danach wir etwas berechnet und anschliessend das Resultat im GUI wieder dargestellt.

Dann könnte ich meine Anwendung adaptieren.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

es war eigentlich so gemeint, dass du aus deinem Beispiel alles rauswirfst, was nicht nötig ist.

Und wie gesagt:
Zitat:
in der CreateFcn wird Wert_length verwendet, ohne dass es vorher (in diesem Workspace) definiert worden wäre - soweit ich sehen kann.


Insofern ist die Fehlermeldung absolut nachvollziehbar.

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

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 91
Anmeldedatum: 06.02.08
Wohnort: Meinisberg
Version: MATLAB Version 7.8.0.347 (R2009a)
     Beitrag Verfasst am: 12.07.2010, 09:29     Titel:
  Antworten mit Zitat      
Ok hier mal ein einfaches Beispiel.

Da kann mir sicher jemand helfen.

Das m file und fig file sind angefügt.

Eingabe einer Zahl im GUI. Verrechnen diesr Zahl und Resultatausgabe im GUI.

Beispiel_Eingabe_Ausgabe.m
 Beschreibung:

Download
 Dateiname:  Beispiel_Eingabe_Ausgabe.m
 Dateigröße:  4.45 KB
 Heruntergeladen:  408 mal
Beispiel_Eingabe_Ausgabe.fig
 Beschreibung:

Download
 Dateiname:  Beispiel_Eingabe_Ausgabe.fig
 Dateigröße:  2.41 KB
 Heruntergeladen:  346 mal


Zuletzt bearbeitet von code88 am 12.07.2010, 10:53, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
code88
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 91
Anmeldedatum: 06.02.08
Wohnort: Meinisberg
Version: MATLAB Version 7.8.0.347 (R2009a)
     Beitrag Verfasst am: 12.07.2010, 10:51     Titel:
  Antworten mit Zitat      
Zitat:
in der CreateFcn wird Wert_length verwendet, ohne dass es vorher (in diesem Workspace) definiert worden wäre - soweit ich sehen kann.


handels.Wert_length wird ganz am Anfang definiert. Reicht das nicht?
Private Nachricht senden Benutzer-Profile anzeigen
 
tompie
Forum-Guru

Forum-Guru


Beiträge: 260
Anmeldedatum: 19.09.07
Wohnort: München
Version: immer alles
     Beitrag Verfasst am: 12.07.2010, 13:36     Titel:
  Antworten mit Zitat      
Du überschreibst ja die Werte immer wieder!

Code:
handles.Wert_length = Wert_length;
 handles.Wert_width = Wert_width;
 handles.Wert_heigth = Wert_heigth;



Woher kommen die Größen Wert_length und Wert_width ?? Steht da überhaupt was drin ??


Wenn man die Zuweisungen umkehrt, ergeben sie mehr Sinn:

Code:
Wert_length = handles.Wert_length;
 Wert_width = handles.Wert_width;
 Wert_heigth = handles.Wert_heigth;


Liegt es daran?
Private Nachricht senden Benutzer-Profile anzeigen
 
code88
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 91
Anmeldedatum: 06.02.08
Wohnort: Meinisberg
Version: MATLAB Version 7.8.0.347 (R2009a)
     Beitrag Verfasst am: 12.07.2010, 16:15     Titel:
  Antworten mit Zitat      
Ja genau die Reihenfolge war das Problem danke.

Nun möchte ich aber das berechnete noch ausgeben:

Code:
Wert_length=handles.Wert_length;
 Wert_width=handles.Wert_width;
 Wert_heigth=handles.Wert_heigth;

face3=(2.7-Wert_heigth)*Wert_length*Wert_width*100;
face4=(2.7-Wert_width)*Wert_length*Wert_heigth*100;
face6=(2.7-Wert_length)*Wert_width*Wert_heigth*100;

set(handle.Wert_face3,'String',num2str(face3));
set(handle.Wert_face4,'String',num2str(face4));
set(handle.Wert_face6,'String',num2str(face6));


Doch ich bekomme einen Fehler.

Wert_face3 ist ein static Texfeld in meinem GUI.
Wie kann das Matlab erkennen?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

bitte schreib doch die Fehlermeldung dazu. Hellsehen ist leider nicht meine Stärke Sad Oder doch?? Bei handle fehlt ein s. Da hätte man nun auch selber draufkommen können, oder?

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

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 91
Anmeldedatum: 06.02.08
Wohnort: Meinisberg
Version: MATLAB Version 7.8.0.347 (R2009a)
     Beitrag Verfasst am: 12.07.2010, 20:02     Titel:
  Antworten mit Zitat      
Schreibe morgen den Fehler. Das s ist es nicht habe ich auch schon ausprobiert. Muss noch was anderes sein
Private Nachricht senden Benutzer-Profile anzeigen
 
code88
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 91
Anmeldedatum: 06.02.08
Wohnort: Meinisberg
Version: MATLAB Version 7.8.0.347 (R2009a)
     Beitrag Verfasst am: 13.07.2010, 07:30     Titel:
  Antworten mit Zitat      
Sorry war mein Fehler es scheint wirklich zu funktionieren. Nicht für Ungutes. Danke für die Hilfe
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 - 2025 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.