Verfasst am: 09.07.2010, 09:44
Titel: Fehlersuche bei Klick auf Daten im Diagramm
Moin,
ich finde meinen Fehler nicht im beiliegenden Code.
Ich erstelle mit diesem Code 2 plots (subplots). Das funktioniert auch alles prima.... Jetzt will ich, dass per Mausklick auf den unteren plot (96 Sensoren über die Zeit), mir die "Sensornummer" angezeigt wird. Es habdelt sich hier um 96 Sensoren, die dargestellt werden.
Es wird mir aber immer die Fehlermeldung angezeigt, Exeedx matrix dimension...Fehler in der Dimension der MAtrix...
Ich finde meinen Fehler aber nicht und steh voll auf den Schlauch....
kann mir jemand da helfen und den Fehler finden???!!! Danke schon mal im voraus...
Der Fehler entsteht wohl in den letzten Zeilen des Codes....
Code:
% -------------------------------------------------------------------- function HORIZVERT_Callback(hObject, eventdata, handles) % hObject handle to HORIZVERT (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
% VERTIKALE DARSTELLUNG
% Zeit --> x-Achse
Zeit=evalin('base', 'Zeit_seriell');
% Vektor TX, der im 12-Stundenabstand die Ticks auf der x-Achse festlegt % --> bessere Beschriftung der x-Achsen
TX=(floor(min(Zeit).*2)./2:0.5:ceil(max(Zeit).*2)./2);
% Trübungswerte --> farbliche Darstellung der y-Werte (SensorTrübungswert=Farbe)
Werte = evalin('base', 'Daten_ALL(:,2:97)');
Truebung=Werte;
% Sensoren
Sensoren=1:1:96;
% Erzeugt ein Grid für die Achsen Sensoren und T [Sensoren1, t1]=meshgrid(Sensoren,T);
% 1. Plot --> Flächendarstellung der Trübung
ax(1)=subplot(2,1,1);
% Colormap mit Farbpalette "jet" colormap(jet(600))
% 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);
datetick(gca,'x','dd.mm HH:MM');
% Achsenbeschriftungen & Titel xlabel('Zeit') ylabel('Sensor') title('VERTIKALE DARSTELLUNG') % Colorbar setzen mit Beschriftung caxis([0,600]);
cb=colorbar( 'location', 'northoutside');
zlab=get(cb,'xlabel')';
set(zlab,'String','Trübung [FTU]');
zoomAdaptiveDateTicks('on');
% 2. Plot --> Trübung über die Zeit ('Standarddarstellung')
ax(2)=subplot(2,1,2);
% set(gca,'ColorOrder',jet(96),'NextPlot','ReplaceChildren');
cmap=colormap(jet(96));
% Plot-Befehl mit Sensor-Index for k=1:96
D3 = plot(T,Truebung(:,k)','Color',cmap(k,:),'Marker','.','MarkerSize',2);
hold on
end;
% Achsen und Titelbeschriftungen grid on
set(gca,'XTick',TX);
datetick(gca,'x','dd.mm HH:MM');
xlabel('Zeit') ylabel('Trübung FTU [-]') title('HORIZONTALE DARSTELLUNG')
%ALTERNATIVE ZUR LEGENDE%
%DURCH KLICK AUF LINIE WIRD DIE NR ANGEZEIGT!!:::
s = text(60000,1800, 'nothing selected'); % Erzeugt Textfeld, indem % steht welche Linie (Sensor) ausgewählt wurde
% HIER PASSIERT DER FEHLER????!!!
for i=1:96; %Durchnummerierung der Sensoren,
set(D3(i),'userdata',[num2str(i)]);
end
set(D3,'buttondownfcn',@mycb)% Sobald eine Linie angeklickt wurde , % wird die Funktion @mycb ausgeführt
function mycb(hObj, ev)% Diese Funktion akualisiert bei jedem Klick % auf ner Linie, die Sensornummer
pos = get(gca, 'CurrentPoint');
set(s,'string', get(hObj,'userdata'),'position', pos(1,:)); %Variable Txt-
% Position
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.