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

GUI-Schwierigkeiten

 

drodde
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 21.12.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.12.2013, 14:59     Titel: GUI-Schwierigkeiten
  Antworten mit Zitat      
Hallo,

[EDITED, Abgetrennt von http://www.gomatlab.de/reference-to.....ui-scho-t24145.html#93225 ]

also ich habe genau das gleiche Problem.
Der Quellcode lief die meiste Zeit ohne Probleme und ab und zu taucht dann wieder der Fehler auf, manchmal geht es dann wieder, aber jetzt bekomme ichb es nicht hin.
Ich habe nicht so richtig verstanden wie genau du das Problem lösen konntest.
Ich kopiere mal die meiner meinung nach relevanten passagen hier rein, der ganze code ist ziemlich lang. Der Fehler befindet sich in der funktion fit1.
Verwunderlich finde ich eben besonders, dass es auch bei mir bei auskommentierung des ensprechenden befehls, gerade der darauf folgende einen fehler bringt.
EDIT: manchmal wenn ich matlab oder gleich den ganzen rechner neu starte, dann funktioniert es wieder kurz.
für hilfe wäre ich sehr dankbar Smile
Viele Grüße
Code:

function varargout = eichung(varargin)      
% EICHUNG MATLAB code for eichung.fig
%      EICHUNG, by itself, creates a new EICHUNG or raises the existing
%      singleton*.
%
%      H = EICHUNG returns the handle to a new EICHUNG or the handle to
%      the existing singleton*.
%
%      EICHUNG('CALLBACK',hObject,eventData,handles,...) calls the local
%      function named CALLBACK in EICHUNG.M with the given input arguments.
%
%      EICHUNG('Property','Value',...) creates a new EICHUNG or raises the
%      existing singleton*.  Starting from the left, property value pairs are
%      applied to the GUI before eichung_OpeningFcn gets called.  An
%      unrecognized property name or invalid value makes property application
%      stop.  All inputs are passed to eichung_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 eichung

% Last Modified by GUIDE v2.5 19-Dec-2013 18:38:40

% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @eichung_OpeningFcn, ...
                   'gui_OutputFcn',  @eichung_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 eichung is made visible.
function eichung_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 eichung (see VARARGIN)

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

% Defaults
set(handles.von, 'String', 'Von');
set(handles.bis, 'String', 'Bis');
litwert = [ NaN, NaN, NaN, NaN, NaN, NaN];
% Update handles structure
handles.litwert = litwert;
guidata(hObject, handles);

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


% --- Outputs from this function are returned to the command line.
function varargout = eichung_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;


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

% Spektrum Datei auswählen
spektrum_file = uigetfile( '*.TKA', 'Select TKA-File' )
[spektrum] = getSpektrum( spektrum_file );
Axes1 = handles.axes1;
size = length(spektrum);
x = [0:1:size];

plot(Axes1, spektrum);
xlim(Axes1, [0, size]);
set(handles.von, 'String', 0);
set(handles.bis, 'String', size);
%Update handles
handles.spektrum = spektrum;
handles.size = size;
handles.x = x;
guidata(hObject, handles);


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


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

zahl_von = str2double(get(handles.von, 'String'));
Axes1 = handles.axes1;
spektrum = handles.spektrum;
size = handles.size;
% zahl_bis = handles.zahl_bis;
x = handles.x;

%  if (zahl_bis == size)    
%    size = size;
% else
%   size = zahl_bis;
% end

plot(Axes1, x(zahl_von:1:size), spektrum(zahl_von: size));
xlim(Axes1, [zahl_von, size]);
% size = handles.size;
% Update handles
handles.zahl_von = zahl_von;
guidata(hObject, handles);


% --- Executes during object creation, after setting all properties.
function von_CreateFcn(hObject, eventdata, handles)
% hObject    handle to von (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

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

zahl_bis = str2double(get(handles.bis, 'String'));
Axes1 = handles.axes1;
spektrum = handles.spektrum;
size = handles.size;
zahl_von = handles.zahl_von;
x = handles.x;
plot(Axes1, x(zahl_von:1:zahl_bis), spektrum(zahl_von: zahl_bis));
xlim(Axes1, [zahl_von, zahl_bis]);
% Update handles
handles.zahl_bis = zahl_bis;
guidata(hObject, handles);

% --- Executes during object creation, after setting all properties.
function bis_CreateFcn(hObject, eventdata, handles)
% hObject    handle to bis (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

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

Axes1 = handles.axes1;
size = handles.size;
spektrum = handles.spektrum;
plot(Axes1, spektrum);
xlim(Axes1, [0, size]);
set(handles.von, 'String', 0);
set(handles.bis, 'String', size);
% Update handles
guidata(hObject, handles);


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

%laden der relevanten Handles
xmin1 = handles.xmin1;
xmax1 = handles.xmax1;
Ewert1 = handles.Ewert1;
zahl_von = handles.zahl_von;
zahl_bis = handles.zahl_bis;
spektrum = handles.spektrum;
x = handles.x;
Axes1 = handles.axes1;
Axes2 = handles.axes2;
litwert = handles.litwert;

% Gauß-fit mit linearem Term, über ezfit, in vorgegebenem intervall


% angezeigt werden soll der auschnitt [zahl_von, zahl_bis], der fir nur in
% [xmin1, xmin1]

plot(Axes1, x(zahl_von:zahl_bis), spektrum(zahl_von:zahl_bis));
% plot(Axes1, x(xmin1:xmax1), spektrum(xmin1:xmax1));

% Startparameter für den Fit
% m = Ewert1;
% a = spektrum(xmin1);
% b = 0;
% c = spektrum(Ewert1) - spektrum(xmin1);

% g = ezfit (x(xmin1:xmax1), spektrum(xmin1:xmax1), 'a+b*x+c*exp(-((x-m)^2)/(2*s^2))', [a, b, c, Ewert1, s]);

% Hole Fit-Parameter aus Fitstruktur
% af = g.m(1);
% bf = g.m(2);
% cf = g.m(3);
% mf = g.m(4);
% sf = g.m(5);


% Plot des Fits aus den erhaltenen Parametern in Axes1

% plot(Axes1, x(xmin:xmax), af+bf.*x+cf.*exp(-((x-mf).^2)/(2*sf.^2)));


% Eintragen des punktes (litwert1, erwartungswert) in Axes2
litwert1 = litwert(1);
plot(Axes2, Ewert1, litwert1,'x', 'MarkerSize', 10);
errorbars(Axes2, Litwert1, 0.5);

% linearer Fit zur Energieeichung


% update der Handles
% handles.mf = mf;
guidata(hObject, handles);

 
Private Nachricht senden Benutzer-Profile anzeigen
Gesplittet: 22.12.2013, 17:25 Uhr von Jan S
Von Beitrag "Reference to non-existent field" nachdem GUI scho aus dem Forum GUIs


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 22.12.2013, 17:30     Titel: Re: GUI-Schwierigkeiten
  Antworten mit Zitat      
Hallo drodde,

Bitte hänge keine neuen Fragen an bestehende Threads an. Solches Thread-Highjacking ist nicht nützlich, weil man nur noch schwierig herausbekommt, zu welcher Frage eine Antwort gehört und der "beantwortet"-Status wird sinnfrei. Danke!

Zitat:
Der Quellcode lief die meiste Zeit ohne Probleme und ab und zu taucht dann wieder der Fehler auf, manchmal geht es dann wieder, aber jetzt bekomme ichb es nicht hin.

Darauf kann man kaum antworten. Offensichtlich nimmst Du zwischenzeitlich Änderungen vor, aber wir wissen nicht welche.

Zitat:
Der Fehler befindet sich in der funktion fit1.

Wieso meinst Du das? Bekommst Du eine Fehlermeldung? Wenn ja, welche?
Zitat:

Verwunderlich finde ich eben besonders, dass es auch bei mir bei auskommentierung des ensprechenden befehls, gerade der darauf folgende einen fehler bringt.

Das verstehe ich nicht.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
GodfatherTB
Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 31.05.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.12.2013, 20:33     Titel:
  Antworten mit Zitat      
Hallo,
konnte auf die Schnelle deinen Code nicht durchforsten, da du aber die Lösung meines Problems nicht nachvollzogen hast (original Thread), wollte ich dir diese nochmal genauer erklären. Vielleicht hilft es bei dir!

Ich habe in einer der Funktionen einen save Befehl verwendet. Dieser hat auch die GUI-spezifischen Objekte wie hObject und die handles fest gespeichert. Wenn ich meine Static-Text-Boxen füllen wollte habe ich mit load die ganzen daten geladen. Darunter dann leider auch die "alten/falschen" Werte für hObject und handels, die zu dem aktiven GUI nicht passten. Daher kam der Fehler.

Viel Erfolg!
_________________

Student der Luft- und Raumfahrttechnik in den letzten Zügen.
Lerne für meine Studien- und Diplomarbeit Matlab kennen und bin für Hilfe sehr dankbar!
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.