Verfasst am: 20.09.2009, 15:53
Titel: Mehrere Plots in einer Axes anzeigen und einen verändern
Hallo an alle,
ich habe mal wieder ein Problem. Ich hoffe, ich bin hier richtig, denn ich glaube, der Fehler liegt daran, dass ich das, was ich vorhabe, in einer GUI machen möchte.
Rahmen:
Ich habe eine GUI gebastelt, die Video- und Signaldaten aufzeichnet. Mit Scrollbalken kann man sowohl durch das Signal, wie auch durch die Bilder scrollen. Insgesamt habe ich vier Achsen auf denen jeweils ein Signal ausgegeben wird. Das kann gespeichert, geladen und im Workspace zur Verfügung gestellt werden. Das funktioniert soweit alles reibungslos.
Nun möchte ich die Scrollbars gerne austauschen, da diese unter der Achse verlaufen und ziemlich dick sind. Somit ist bei den Signalen nicht genau erkennbar, wann ein Maximum mit dem Scrollbar erreicht ist. Stattdessen möchte ich nun gerne in jeder Achse eine Paralle zur Y-Achse plotten lassen, die mit einer Scrollbar daneben gesteuert wird. Also der Plot des Signals muss erhalten bleiben und die Parallele will ich beliebig bewegen können.
Zu Beginn der GUI gebe ich diese Parallelen einmal aus. Der Code dazu sieht wie folgt aus:
Bis zu dem Zeitpunkt dass neue Daten aufgenommen oder alte geladen wurden, sind alle anderen Funktionen disabled. Beim Laden werden die Daten wie gesagt wieder in die GUI aufgenommen und die Sognale werden in die Achsen geplottet. Der Code dazu:
Code:
load(a, 'variable_save') % Aufspalten der Variable in Signale und Bilder
matar = cell(1,length(variable_save)-1);
for k = 1:(length(variable_save)-1)
matar{k} = variable_save{k};
end;
data = variable_save{length(variable_save)};
% Übergeben der Signaldaten und der Bilddaten an den Workspace assignin('base','signal_data',data);
assignin('base','picture_array',matar);
% ----------- Signalausgabe auf den einzelnen Achsen ----------------- % Anpeilen der 1. Achse zur Signalausgabe hold(handles.axes_signal1,'on') plot(handles.axes_signal1, data(:,1),'c') grid(handles.axes_signal1,'on') % hold(handles.axes_signal1,'off')
komme ich nun an die in der Achse gezeichneten Plots. Ich bekomme damit auch für beide ein handle. Leider wird nur das Signal angezeigt. Den x-Wert der Parallelen kann ich verändern, dass wird auch registriert, aber ich kann die Linie nicht ausgeben.
Wenn ich das hold hier rausnehme und am Anfang reinnehme, habe ich das Problem, dass die y-Parallele nicht mehr als Kind der Achse geführt wird. Was bedeutet, dass ich mit dem eben genannten Befehl dafür auch kein handle bekomme. Ohne dass handle kann ich die Linie natürlich steuern.
Kann mir hierbei vielleicht jemand helfen?
Matthias
_________________
Nicht der ist der Beste,
der der Beste von allen ist,
sondern der,
der sich selbst ueberwindet.
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.