Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
20.12.2012, 11:27 (Dieser Beitrag wurde zuletzt bearbeitet: 20.12.2012 11:27 von Enemy.)
Hallo,
ich habe eine Messwertverteilung und brauche dafür die dazugehörige Trendlinie. Nun bin ich schon über die Methode der kleinsten Quadrate gegangen, was auch gut funktioniert (siehe Anhang 1 "Punkte" - die weißen Punkte sind die Messwerte, die rote bilden die Trendlinie). Nun möchte ich, dass die Punkte zu einer Linie verbunden werden. Mit dem Switch auf Liniendarstellung komme ich hier nicht weiter, da die Punkte ungeordnet vorkommen (siehe Anhang 2 "Linie" - rote Linie). Nun möchte ich quasi eine Verbindung der Punkte von links nach rechts haben (siehe Anhang 3 "Trend" - mit Paint mal gezeichnet, wie es aussehen soll).
Wie kann ich eine solche Punkt-zu-Punkt-Verbindung realisieren?
Anzeige
20.12.2012, 11:45 (Dieser Beitrag wurde zuletzt bearbeitet: 20.12.2012 11:49 von dali4u.)
Mangels Vi und wegen dürtiger Information kann man nur mit Vermutungen etwas sagen.
Falls "ungeordnete Daten" heißt, dass die x-Werte nicht monoton ansteigend sind, dann wäre die erste Aufgabe das Sortieren der Daten.
Wie? Die XY-Daten als "1D-Array of Points" (Point= Cluster[X,Y]) darstellen und die Funktion "1D-Array sortieren" anwenden. Hilfe dazu Wort für Wort genau studieren!
20.12.2012, 15:52 (Dieser Beitrag wurde zuletzt bearbeitet: 20.12.2012 15:57 von Enemy.)
(20.12.2012 13:46 )Lucki schrieb: Mangels Vi und wegen dürtiger Information kann man nur mit Vermutungen etwas sagen.
Ich habe zwei Arrays. Eines für x-Werte und eines für y-Werte. Ungeordnet heißt, dass die Werte nicht nacheinander vorhanden sind. Beispielsweise:
Achse:. x y
Wert 1: 1 2
Wert 2: 3 4
Wert 3: 2 3
Bei der Eintragung in ein Diagramm wird erst der Punkt (1/2) eingetragen, dann (3/4), dann (2/3). Die Linie geht also von (1/2) zu (3/4) und dann zu (2/3). Das ergibt wie im Beitrag eins im Anhang zu sehen ist, aber eine wirre Kurve. So möchte ich eine Verbindung vom Punkt (1/2) zu (2/3) haben und von dort zu (3/4) um eine vernünftige Linie zu bekommen. Mit sortieren geht das nicht, weil die y-Werte dann nicht mehr zu den entsprechenden x-Werten gehören würden:
Achse:. x y
Wert 1: 1 2
Wert 2: 2 4 (falsch)
Wert 3: 3 3 (falsch)
Es müsste also eher eine x-Wert-Sortierung gemacht werden, wobei diese Werte aber nicht den dazugehörigen y-Wert "verlieren". Wenn ich das Cluster in ein Array überführe und dann sortieren lasse, passiert hier nichts. Das Array bleibt wie es ist.
Über eine Interpolation klappt das auch nicht.
Ich hatte versucht Dir zu erklären, wie man die Daten richtig sortiert, aber Du bestehst weiterhin darauf, dass es nicht geht.
Hier also ein weiterer Versuch, das zu erklären - als Beispiel mit deinen Daten:
Die Trendlinie hätte ich Dir auch noch präsentiert, aber mit Deinen 3 Daten, die noch dazu auf einer Geraden liegen, gibt es schlichtweg keinen Trend.
Ja, in OpenG gibt es die erwähnte Sortier-Funktion, aber hier brauchst Du die nicht. Diese riesenhafte OpnG - Bibliothek würde ich mir nur antun, wenn es dafür gewichtigere Gründe gibt als diese kleine Sache. Nur etwas Einzelnes daraus verwenden ohne das Ganze zu installieren geht nicht
das man 1D Array sortieren auf diese Weise auf ein Cluster-Array anwenden kann, war mir auch neu :-)
Wieder was dazugelernt, Danke. Dann ist die OpenG Lib natürlich überflüssig...
Stefan
22.12.2012, 18:08 (Dieser Beitrag wurde zuletzt bearbeitet: 22.12.2012 18:16 von Enemy.)
(20.12.2012 17:04 )Lucki schrieb: Ich hatte versucht Dir zu erklären, wie man die Daten richtig sortiert, aber Du bestehst weiterhin darauf, dass es nicht geht.
Hier also ein weiterer Versuch, das zu erklären - als Beispiel mit deinen Daten:
Die Trendlinie hätte ich Dir auch noch präsentiert, aber mit Deinen 3 Daten, die noch dazu auf einer Geraden liegen, gibt es schlichtweg keinen Trend.
Mittlerweile funktioniert es doch.
Das mit den drei Datenwerten war nur ein Beispiel an dem ich erklärt habe, was ich vorhabe.
Als einzelnen Graphen kann ich das sortierte Array durchaus darstellen (XY-Graph). Nun möchte ich dieses in das Diagramm mit den "Urwerten" hinein bekommen. Also zwei Graphen in einem Diagramm. Verwenden würde ich hier die "Array erstellen"-Funktion. Das eine Element ist ein Cluster, dass durch eine Bündelung entstanden ist. Bei der direkten Verbindung des sortierten Arrays zur "Array erstellen"-Funktion entsteht allerdings ein Konflikt zwei unterschiedlicher Typen. Die Erklärung von Labview mit "Der Typ der Datenquelle ist 1-D Array von Cluster aus 2 Elemente. Der Typ der Datensenke ist 1-D Array von Cluster aus 2 Elemente." hilft mir überhaupt nicht weiter. Datenquelle und Datensenke sind doch nach der Labview-Erklärung gleich. Oder wie ist das gemeint?