Verfasst am: 20.07.2016, 10:27
Titel: Daten für Plot triggern
Hallo,
ich möchte ein paar Daten im nachhinein triggern, nur mir fehlt der Ansatz für Matlab. Im angehängten PDF sind links die Daten zu sehen, die ich direkt übereinander laufen lassen möchte, also in x-Richtung (Zeit t) sollen sie automatisch verschoben werden. Im rechten Plot sind die Referenzen zu sehen, die definieren sollen, wann was geplottet werden soll. Ich möchte dann auf der linken Seite 5 vollständige Durchgänge geplottet haben. Sprich er muss erstmal den Wert 0 und den Wert 5000 erreichen um das Plotten zu beginnen und das dann von 0-5000 5 mal durchlaufen, so dass ich quasi auf der rechten Seite im Minimum starte und nach 5 Durchläufen stoppe. Dazu soll zusätzlich die Zeit bei 0 anfangen.
Ist das verständlich ausgedrückt? Mein Gedankengang ist nun, dass ich einen Anfangspunkt in den Daten finde und diese dann in Vektoren schreibe, welche ich dann plotte.
was hast du denn bis jetzt versucht und welche fehler sind dabei aufgetreten?
für mich ist das ganze so noch nicht verständlich und ohne code und daten beispiel nur schwer nachzuvollziehen. siehe dazu auch den thread aus meiner signatur.
grüße winkow
_________________
Naja ohne Ansatz kann ich nichts programmieren, daher die Frage welcher Ansatz da zu wählen ist. Ich möchte im Endeffekt die Vektoren an bestimmten Stellen abschneiden und diese dann plotten. Ist das eindeutiger?
nö
das ist zu allgemein um effektiv lösungsvorschläge zu machen. brich dein problem doch mal runter auf einzelne schritte die nacheinander realisiert werden müssen.
am anfang auch mit for-schleifen. das ist einfacher zu verstehen . bis jetzt verstehe ich nur das du vektoren irgendwie auseinadner schnibbeln willst.
gieb doch mal simple beispiel daten und was damit passieren soll.
_________________
So soll das Ergebnis aussehen, also der endgültige Plot soll der zwischen den beiden roten Linien sein, wobei die Daten des linken Plots mit Hilfe des rechten gefunden werden sollen.
Mein bisheriger Code, natürlich kein Minimalbeispiel, die Messdaten sind angehängt
Also das Programm liest die Dateien der Messwerte ein, dann werden die Daten zugeordnet, wie sie hinterlegt sind. Danach bilder ich gleitende Mittelwerte und plotte die Graphen. Das ist mein bisheriger Stand, der aber nicht wirklich etwas mit dem Problem zutun hat.
Die Daten sollen nun weiter aufbereitet werden. Die Daten des ersten Plots sind willkürlich aufgezeichnet, sprich die Graphen können mal nach rechts oder nach links in x-Richtung verschoben sein, daher möchte ich sie so abbilden, dass sie nicht versetzt sind, sondern fast übereinander. Dazu muss ich einen Anfangspunkt haben, den ich aus dem zweiten Plot entnehmen will. Also wenn ein bestimmtes V (zweiter Plot) erreicht ist, soll zum gleichen Zeitpunkt t der Plot von Q (erster Plot) beginnen.
Das wäre der erste Schritt. Quasi einen Trigger einsetzten, so dass z.B. das Plotten von Q bei dem ersten auftreten von V=0 beginnt.
x = [0101020203030404050506060707080809090100100110110120120130130140140150150160160170170180180190190200200210210220220230230240240250250260260270270280280290290300300310310320];
y = [21002100280028003500350042004200500050000070070014001400210021002800280035003500420042005000500000700700140014002100210028002800350035004200420050005000007007001400140021002100280028003500350042004200500050000070070014001400];
plot(x,y);
n = 0;
for k = 1:length(x) %Durchlaufen aller Punkte
if y(k)>4800 && y(k)<5100
n=n+1;
z(n) = y(k);
xx(n)= x(k);
end
if y(k)<300
n=n+1;
z(n) = y(k);
xx(n)= x(k);
end end
Dafür habe ich mir eine Treppe nachgebaut, die über die Vektoren x und y definiert ist. In der for-Schleife wird jede Zeile von x und y durchlaufen. Die if-schleifen schreiben dann die Werte des Vektors neu, wenn die Bedingung erfüllt ist.
Ich bekomme es nun nicht hin, dass der Plot erst bei z.B. 5000 anfängt zu zeichnen. Wie kann ich das realisieren? Also die ersten Stufen sollen nicht berücksichtigt werden.
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.