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

Plot-Update in einem GUI Fenster aus einem zweiten Fenster

 

Klusi
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 18.09.17
Wohnort: ---
Version: 2013b
     Beitrag Verfasst am: 12.10.2017, 12:17     Titel: Plot-Update in einem GUI Fenster aus einem zweiten Fenster
  Antworten mit Zitat      
Hallo zusammen,

ich habe ein Problem mit der Datenübergabe und dem Update eines Axes-Objects in meinen GUIDE GUIs. In meinem Hauptfenster ist ein Plot. Die Koeffizienten der geplotteten Funktion möchte ich über einen "Optionen" Pushbutton mit Hilfe eines sliders etwas variieren können. Der Optionen-Callback öffnet dazu ein weiteres Fenster mit dem Slider und ein paar anderen Variationsmöglichkeiten.

In dem Slider-Fenster soll mit Hilfe eines Klicks auf "Anwenden" der Plot mit neuen Koeffizienten aktualisiert werden, ohne dass das Slider-Fenster sich schließt. Das Funktioniert auch einmal, danach bekomme ich folgende Fehlermeldung:
Error using guidata (line 89)
H must be the handle to a figure or figure descendent.

Error in Test_GUI_Datenuebergabe>PB_Optionen_Callback (line 98 )
guidata(hObject, handles);

Error in Test_GUI_Datenuebergabe>PB_Optionen_Callback (line 100)
PB_Optionen_Callback(hObject,[],handles);

Error in gui_mainfcn (line 96)
feval(varargin{:});

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

Error in @(hObject,eventdata)Test_GUI_Datenuebergabe('PB_Optionen_Callback',hObject,eventdata,guidata(hObject))


Error while evaluating uicontrol Callback


Hier meine Callbacks für "Optionen" im Fenster1 und "Anwenden" in Fenster2:

Code:
% --- Executes on button press in PB_Optionen.
function PB_Optionen_Callback(hObject, eventdata, handles)
% hObject    handle to PB_Optionen (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
if handles.exitflag==0 % wird benutzt um nur einmal die Funktion mit dem Fenster aufzurufen
    handles.slidergui = Extra2DSlider(handles.coef,handles.coefnew);
end

uiwait(handles.slidergui); % warten auf SliderGUI Rückgabe

handles.coefnew=getappdata(handles.GUI1,'coefnew');
handles.exitflag=getappdata(handles.GUI1,'exitflag');

set(handles.plot1,'YData',Ludwik(handles.coefnew,handles.xrange)); %Ludwik ist die geplottete Funktion

% Update handles structure
guidata(hObject, handles);

if handles.exitflag==1 % Funktion abbrechen, wenn "Schliessen" gedrückt wurde
    return;
end

PB_Optionen_Callback(hObject,[],handles);


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

gui1=findobj('Tag','GUI1');

setappdata(gui1,'coefnew',handles.coefnew);

handles.exitflag=2;

setappdata(gui1,'exitflag',handles.exitflag);

% Update handles structure
guidata(hObject, handles);


uiresume(gcf);


Kann mir jemand meinen Fehler aufzeigen oder gibt es eine Funktion in MatLab die mir helfen könnte?

Viele Grüße
Klusi
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.10.2017, 16:21     Titel:
  Antworten mit Zitat      
Hallo,

hast du mal mit dem Debugger geschaut, ob du das Problem so eingrenzen kannst?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Stonewall
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 10.07.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.10.2017, 13:19     Titel:
  Antworten mit Zitat      
Zitat:
In dem Slider-Fenster soll mit Hilfe eines Klicks auf "Anwenden" der Plot mit neuen Koeffizienten aktualisiert werden, ohne dass das Slider-Fenster sich schließt. Das Funktioniert auch einmal, danach bekomme ich folgende Fehlermeldung:
Code:
Error using guidata (line 89)
H must be the handle to a figure or figure descendent.



Ohne den vollen Code kann ich dazu nicht viel sagen, aber wie du mir wahrscheinlich zustimmen wirst, besteht eine Option darin, dass dein Handle(s) von irgendeinem Aufruf überschrieben oder gelöscht werden. Denke Haralds Vorschlag ist vernünftig.
Private Nachricht senden Benutzer-Profile anzeigen
 
Klusi
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 18.09.17
Wohnort: ---
Version: 2013b
     Beitrag Verfasst am: 16.10.2017, 12:42     Titel:
  Antworten mit Zitat      
Hi,

danke für eure antworten. Ich habe mit dem Debugger versucht das Problem zu lösen, konnte mir aber keinen Reim darauf bilden, wo die handles überschrieben werden könnten.

Aus zeitlichen Gründen musste ich die nicht richtig funktionierende Version in mein Projekt einbauen und siehe da, es funktionierte einwandfrei. Wenn ich Zeit finde werde ich hier meinen Fehler selber aufdecken, für alle die ein ähnliches Problem haben.

Danke euch!
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.