Verfasst am: 22.11.2010, 12:39
Titel: neue Achsenbeschriften nach Zoomen wird nicht angezeigt!!
Moin,
ich suche in meinem Code den Fehler. Mithilfe der Zoomfunktion und seinem Callback will ich die neue Achseneinteilung (nach Zoomen) anzeigen lassen bzw. im ersten Veruch wollte ich mir die x und y koordinaten ins 'base' workspace´schreiben lassen. Die funktioniert allerdings nicht und beim ausführen wird mir auch ekeine fehlermeldung angezeigt... Kann mir jemand bei der Fehlerfindung helfen... Versuche schon einiges, komme aber leider nciht zur lösung...
anbei der gesamt-code und der code-ausschnitt, wo die zoom funktion angewandt wird.
ich danke schonmal für jegliche hilfe
Code:
function... ... % Öffnet das Figure-Fenster in maximaler Größe: figure('NumberTitle','off','Name','oben: Flächendarstellung der Trübung, unten: Trübungs- und Wassertiefenganglinie','units','normalized','outerposition',[0011]);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 1. Plot --> Flächendarstellung der Trübung:
ax(1)=subplot('Position',[0.050.550.900.4]);
% Colormap mit Farbpalette "jet" colormap(jet(Tmax))
% Darstellung der Trübung als 3D-Fläche über x,y (Zeit,Sensor) % Höhenwert entspricht ein Farbwert % Erweiterung des surf-Befehl um die 3. Dimension: % mit "zeros(size(t1)" --> Alle Höhenkoordinaten = 0; dadurch wird aus dem % Gebirge eine ebene Fläche, die mit den Trübungswerten eingefärbt wird. surf(t1,Sensoren1,zeros(size(t1)),Truebung);
% Flächige Projektion auf die "Fläche" view(0,90);
% Schattierung der Farbfläche shading interp
% Zeitachse setzen set(gca,'XTick',TX,'YDir','reverse');
datetick(gca,'x','dd.mm HH:MM');
% Achsenbeschriftungen & Titel ylabel('Sensor','FontWeight','bold') % Colorbar setzen mit Beschriftung caxis([0,Tmax]);
cb=colorbar( 'location', 'northoutside');
zlab=get(cb,'xlabel')';
set(zlab,'String','Trübung [FTU]','FontWeight','bold');
u=zoom;
set(u,'ActionPostCallback', {@zoom_callback});
function zoom_callback(obj, evd)
yk= get(evd.Axes,'YLim'); % y koordinaten aus dem zoomen
xk= get(evd.Axes,'XLim'); % x koordinaten aus dem zoomen
xmin=min(xk);
%assignin('base','xmin',xmin);
set(handles.text42,'String',num2str(xmin));
xmax=max(xk);
%assignin('base','xmax',xmax);
set(handles.text43,'String',num2str(xmax));
ymin=min(yk);
%assignin('base','ymin',ymin);
set(handles.text45,'String',num2str(ymin));
ymax=max(yk);
%assignin('base','ymax',ymax);
set(handles.text46,'String',num2str(ymax));
end
function zoom_callback(obj, evd)
yk= get(evd.Axes,'YLim'); % y koordinaten aus dem zoomen
xk= get(evd.Axes,'XLim'); % x koordinaten aus dem zoomen
xmin=min(xk);
%assignin('base','xmin',xmin);
set(handles.text42,'String',num2str(xmin));
xmax=max(xk);
%assignin('base','xmax',xmax);
set(handles.text43,'String',num2str(xmax));
ymin=min(yk);
%assignin('base','ymin',ymin);
set(handles.text45,'String',num2str(ymin));
ymax=max(yk);
%assignin('base','ymax',ymax);
set(handles.text46,'String',num2str(ymax));
end
ich konnte den fehler nur einschränken, und habe festgestellt, dass meine Callback funktion nicht funktioniert....
kann aber leider den grund dafür nicht finden.... kann mir da jemand weiterhelfen???
Danke
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.