Jedoch wird die Callback-Fcn erst ausgeführt wenn ich die Maus loslasse. Wie kann ich den so programmieren, dass die Callback-Fcn schon während des Ziehens der Balken aufgerufen wird?
Error using approximation_punktmenge_3d_2>slidern_Callback (line413)
No method 'addlistener' with matching signature found. Callback must
be a function handle.
Ich würde addlistener-definition in OpeningFcn setzen, sonst erzeugst du immer wieder neuen Listener
Zitat:
Error using approximation_punktmenge_3d_2>slidern_Callback (line 413)
No method 'addlistener' with matching signature found. Callback must
be a function handle.
Okay dann muss man hier einen Umweg über GUIDATA gehen:
Code:
function slidern_Callback(hObject, eventdata, handles)
Hallo
Läuft bei das Beispiel was Harald gepostet hat?
ja
nun funktioniert fast alles, nur leider wird die Grafik, die von der approximieren_Callback-Fcn erzeugt wird, in einem separaten Fenster anstatt in der GUI angezeigt.
bei den meisten Grafikbefehlen kannst du als erstes Argument übergeben, in welches Koordinatensystem (KS) geplottet werden soll. Wenn du ein KS mit Tag axes1 hast, z.B.
plot(handles.axes1, x, y)
Falls dir das nicht weiterhilft, bitte sagen, welche Befehl(e) du zur Erstellung der Grafik verwendest.
das habe ich schon mit axes(handles.axes2) probiert. Der dazugehörige Code sieht so aus:
Code:
axes(handles.axes2);
surf(handles.x2,handles.y2,handles.fl_wert);
hold on;
% Kontrollpunktnetz zeichnen wenn checkbox aktiv if(get(handles.checkbox1,'Value')==1) plot3(handles.cx, handles.cy, handles.cz,'-k.','MarkerSize',12,'LineWidth',1);
plot3(handles.cx', handles.cy', handles.cz','-k.','MarkerSize',12,'LineWidth',1);
end axis([handles.u_links, handles.u_rechts, handles.v_links, handles.v_rechts]);
hold off;
das funktioniert leider nicht mehr, nach dem ich den Vorschlag von denny eingebaut habe. Die Grafik, die durch "surf" erzeugt wird, wird immer in einem extra Fenster angezeigt
Leider funktioniert es noch nicht so wie ich es haben möchte.
Es hilft im Zweifelsfall zu sagen, was genau nicht funktioniert. Bei einer GUI also auch: was wird in welcher Reihenfolge angeklickt?
In dem Callback muss man konsequent dafür sorgen, dass alle Grafikbefehle im richtigen Koordinatensystem ausgeführt werden. Meines Erachtens funktioniert es jetzt.
genau so wollte ich es haben.
ich dachte mit axes(handles.axes2) habe ich schon gezwungen, dass die Grafik in axes2 angezeigt werden soll. Anscheinend ist es nicht so.
wird das aktive Koordinatensystem einmalig gesetzt. Durch Klicken (und das machst du ja) kann sich das ändern.
Grüße,
Harald
Einstellungen und Berechtigungen
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.