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

Fehlersuche bei Klick auf Daten im Diagramm

 

Vanillebacke
Forum-Century

Forum-Century


Beiträge: 167
Anmeldedatum: 06.05.09
Wohnort: Hamburg
Version: R2014a
     Beitrag Verfasst am: 09.07.2010, 09:44     Titel: Fehlersuche bei Klick auf Daten im Diagramm
  Antworten mit Zitat      
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');
 
 
% serielle Zeitdarstellung
DT=mean(diff(Zeit));
T=(min(Zeit)Very HappyT:max(Zeit));
 
% 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);
 
 
figure(2)
 
% 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')
 
 
zoomAdaptiveDateTicks('on');
refreshdata;
linkaxes(ax,'x');
 
 
%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
             
    end
 
 
end
 
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 - 2025 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.