Verfasst am: 21.12.2010, 17:35
Titel: Graphen über Listbox zu und abschalten
Hallo zusammen,
ich habe zwar schon einiges über mehrere Graphen in einem Plot gelesen und auch etwas über das zu und abschalten aber leider passt nichts auf mein Problem.
Ich habe mir aus meinen eingelsenen Daten eine Matrix gebaut und lasse mit diese auch darstellen.
Hier der code
Code:
Data = reshape(Data,NumOfPoints,NumOfCurves+1);
Data(:,1) = [0:T0:(size(Data,1)-1)*T0].';
Data(:,strmatch('Curve',CurveName)) = [];
CurveName(strmatch('Curve',CurveName))= [];
Data(:,strmatch('leTimeCurve',CurveName)) = [];
CurveName(strmatch('leTimeCurve',CurveName))= [];
switchnargout case0 set(gcf)%,'Pointer','fullcross') [Selection,ok] = listdlg('ListString',CurveName(2:end),'SelectionMode','multiple');
disp(CurveName);
a=evalin('base',CurveName) disp(a) switch ok
case0 plot(Data(:,1),Data(:,2:end))
h = legend(CurveName(2:end),'interpreter','none');
set(h,'Interpreter','none') xlabel('Zeit in s') otherwise plot(Data(:,1),Data(:,Selection+1))
h = legend(CurveName(Selection+1),'interpreter','none');
set(h,'Interpreter','none') xlabel('Zeit in s') end end
Jetzt würde ich gerne meine CurveName(Legende) in eine Listbox oder sonst was einlesen um darüber die Graphen auswählen(zu und abschalten). Nur leider finde ich keine Idee oder passenden Ansatz.(Ich glaube ich sitzte heute schon zu lange davor)
Möglicherweise hat einer von euch eine Idee. Bin für jeden Tipp mehr als dankbar
Hi,
falls du sowas in dieser Art meinst -> http://www.gomatlab.de/download,id,2617.html dann schreib doch einfach deine CurveName der Messungen in eine Listbox die du neben deiner axes in einer GUI platzierst. Dann kannste doch je nach ausgewählten Values (ausgelesen im Listbox Callback) deine Data(Values) neu in die axes plotten! Zusätzlich kannste ja noch einige GUIobjekte platzieren, die deine axes z.B. YLim XLim etc etwas vom User veränderbar machen...
Ich würde die Daten auch nicht in den Matlab WS ablegen sondern z.B. mittels guidata in die handlestruktur (handles) einpflegen. Diesbezüglich findest du in der Hilfe oder auch hier im Forum massig Tipps...
genau so was habe ich gemeint. Ich habe jetzt meine CurveNames in eine Listbox gelegt, kann mehrere Kurven auswählen und weiß über get Funktion welche Position gewählt wurde.
Mein Problem ist das "wieder finden" der dazu gehörigen Daten in meiner Matrix. Die Position(Stelle in der Liste) bleibt doch in der Matrix und der Lsite gleich oder?
dann stehen in deiner Listbox Messung1 und Messung2. Liest du nun das value aus, dann kannste doch die entsprechenden Daten ploten. Beispiel wenn value == 2 dann plot(cell2mat(Daten(value,2:end)))...
Wenn du nichts an der Reihenfolge oder Größe deiner Daten änderst, dann bleibt das auch so...
Die Datenmatrix habe ich irgendwo nach Aufruf eines Pushbuttons erstellt und wie ich jetzt mal schwer annehme hab ich diese variable nicht ordnungsgemäß übergeben. Allerdings habe ich noch keinen schimmer wie
lang lebe die Suche im Forum
handles.Data=Data
......
handles.Data2=handles.Data
Es läuft, Danke für die Hilfe
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.