ich habe mal wieder eine Frage.
Ich möchte gerne eine Messung auswerten.
Die Messung beschreibt eine Geschwindigkeit über die Zeit (x-Wert: Zeit, y-Wert Geschwindigkeit).
Problem ist jetzt, dass die Messung erst bei 2 Sekunden startet. Für diese Zeit läuft die Messung quasi auf 0!
Ich möchte nun die Werte für diese Zeit rauslöschen, weil sie unrelevant sind.
Habe mir das in etwa so gedacht, das funktioniert aber nicht:
Der Beispielcode schmeisst verschiedene Dinge zusammen. Zunächst einmal: Um unnötige Werte nicht darzustellen muss man sie nicht zwangsläufig löschen. Beispiel:
Code:
v=[00001234]% Die Nullen sind "falsch"
%plot(v)% alles darstellen plot(v(5:8))% nur den relevanten Teil darstellen
Natürlich gibt es Fälle, wo man auch FIND anwendet um unrealistische Werte zu identifizieren, oder andere Ausreissertests, aber hier ist es ja nur der Anfang eines Signals.
Du kannst auch mit dem Debugger durch den Code navigieren. Dann siehst du z.B., dass du mit c=find(c>0); deine Daten den relevanten Indizes überschreibst, was du sicher nicht willst.
@Andreas: Ich kann das so nicht machen, weil das ja unendlich viele Werte sind, kann ja nicht sagen wie viele Werte =0 sind bis die Geschwindigkeit >0 ist. Oder habe ich das nur nicht verstanden?
@Harald: Ich habe deinen Hinweis so übernommen, leider wird der Graph genauso abgebildet wie vorher.
ich schrieb ja "vermutlich", denn ich konnte anhand der Beschreibung nur raten, wo nun die zu ignorierenden Nullen sind: In der ersten Spalte? In der zweiten Spalte? In einer der beiden? - Ich habe mich für die zweite entschieden.
Wenn es also für deine Daten nicht klappt, musst du entweder
a) selbst herausfinden wieso und den Vorschlag entsprechend anpassen oder
b) uns Daten zur Verfügung stellen, bei denen das Problem auftritt.
Das gibt den gewünschten Graphen wieder. Da läuft die Messung halt die ersten 2 Sekunden auf "0", das möchte ich halt weg bekommen.
Der Graph soll also direkt im Ursprung starten. und Nicht erst 2 Sekunden lang als waagrechte Linie auf "0" laufen.
_________________
die Frage, wo in den Daten die Nullen sind, ist damit leider nicht wirklich beantwortet.
Die Linie sollte mit meinem Vorschlag erst bei der ersten Nicht-Null starten. Wenn du sie in den Ursprung verschieben willst, dann wird es am einfachsten sein, den ersten Nicht-Null-Zeitpunkt vom Zeitvektor abzuziehen.
ich hätte mir auch gewünscht, dass wir schneller vorankommen.
Dazu benötigt man jedoch eindeutige Aussagen, welche Daten vorliegen und was genau damit erreicht werden soll. Für dich wird das intuitiv klar sein, für Leute die mit deiner Anwendung nichts zu tun haben jedoch nicht unbedingt. Ich habe jedenfalls anscheinend entweder noch nicht verstanden, wie deine Daten vorliegen oder was du genau erreichen möchtest.
Ich hatte dich ja um Beispieldaten gebeten, da dies wohl das Problem aufklären würde. Leider hast du jedoch keine bereitgestellt.
danke für deine Geduld. Ich fang jetzt mal ganz von vorne an, eventuell kannst du mir dann helfen.
Ich lade ein Messfile, in diesem Messfile wurde die Geschwindigkeit eines Objektes gemessen. Dieses Geschwindigkeitssignal weise ich zuerst einer Variablen zu. Diese Variable heißt: v1
Wenn ich nun v1 wie folgt plotte, erhalte ich den Graphen genau so wie ich ihn haben will, mit einer Ausnahme.
Die Ausnahme ist jetzt das Problem, dass das Objekt erst nach 2 Sekunden beschleunigt wird und somit auch erst nach 2 Sekunden eine Geschwindigkeit v1>0 aufweist.
Diese 2 Sekunden möchte ich aus dem Plott raushaben, sodass der Geschwindigkeitsgraph schon direkt im Urpsung eine Steigung aufweist.
Ich hänge mal ein Bild an.
Eventuell hilft ja das.
gut, so hatte ich das verstanden.
Wenn du mein Beispiel mit meinen Beispieldaten ausführst, klappt es dann wie gewünscht?
Wenn nein, inwiefern nicht?
Wenn ja, sind wir wieder fast an der alten Stelle:
Zitat:
Wenn es also für deine Daten nicht klappt, musst du entweder
a) selbst herausfinden wieso und den Vorschlag entsprechend anpassen oder
b) uns Daten zur Verfügung stellen, bei denen das Problem auftritt.
ja mit deinen Beispieldaten klappt es, genau so möchte ich es haben!
Ich habe nur Probleme, deinen Code jetzt auf meine Anwendung zu übertragen.. Ist ganz schön schwer als Neuling.
_________________
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.