Hallo,
ich habe jetzt schon ne ganze Zeit gegrübelt, aber keine sinnvolle Lösung gefunden. Ich habe einen Datensatz von xy-Werten. Wenn ich diese Punkte jetzt in einem xy-Graphen darstelle, wird deutlich, dass der Datensatz im Prinzip drei Schwerpunkte besitzt. Diese Daten möchte ich jetzt gerne in 3 Gruppen sortieren. Irgendwie stehe ich aber auf dem Schlauch, mir ist noch keine funktionierende Lösung eingefallen....
Ich habe mal die Daten in einem VI mit angehängt.
Dank und Gruß
elbkroptilot
Da gibt es das VI "ID-Array sortieren", und der Schlüsseltext in der Hilfe zur Lösung Deines Problems lautet:
Wenn Array ein Array aus Clustern ist, werden die Elemente durch Vergleich der ersten Elemente sortiert.
[
attachment=25649]
Diese Sortierungsfunktion kenne ich. Allerdings habe ich hier die Sortierung nur für eine Dimension (also x oder y), ich brauche aber eine Sortierung nach beiden Parametern, so dass ich am Ende wirklich drei unabhänigige Gruppen mit yx-Werten bekomme.
So ganz verstanden was du eigentlcih willst hab ich nicht.
Hier hab ich dir aber mal ein Beispiel zusammengeklickt, mit dem du aus deinem XY-Graph einen Bereich auswählen kannst und die enthaltenen Punkte in einem neuen Graph angezeigt bekommst (-> unabhängige Gruppe... ist es das, was du meinst?).
[
attachment=25667][
attachment=25670]
[
attachment=25671]
Das Drumrum hab ich mir gespart. Etwas ähnliches habe ich schonmal hochgeladen (
LVF-Link), da kannst du dir ein GUI anschauen und dir vorstellen, wie es in diesem VI aussehen könnte. Da ich, wie gesagt, nicht weiß ob es das ist was du willst, hab ich mir die Mühe auch nicht gemacht.
Gruß SeBa
Hallo,
die Sortierfunktion arbeitet mit der Reihenfolge der Elemente im Cluster.
Wenn das erste Element gleich ist (gleicher X-Wert), dann wird das zweite Element zur Sortierung verwendet (Y-Wert).
Hilft dir das weiter?
Ansonsten: eigene Sortierung (aka Suchfunktion) mittels InRange-Funktionen o.ä. programmieren...
(Ich gehe davon aus, dass sowohl X- als auch Y-Werte nicht genau übereinander liegen, sondern "Wolken" bilden.)
Edit: SeBa war schneller und hat auch ein Beispiel dazugepackt...
Vielen Dank!!!
Ist genau das, was ich gesucht habe. Jetzt muss ich es nur noch hinbekommen, dass er die Cursorgrenzen (für die Eingrenzung der Punkte) automatisch setzt.
Grüße
Elbkroptilot
Ein Ansatz um die Punkte programmatisch zu trennen könnte ein Histogramm sein. Einfach mal die Y-Werte an ein Histogramm mit XYZ Intervallen anschließen und gucken.
Über die Intervallanzahl respektive Intervallbreite kannst du dann einstellen, welche Punkte noch zusammengehören und welche nicht. Die Intervallwerte bekommst du von dem VI ausgegeben. Wenn dann die (Anzahl) Histogrammwerte in einem Intervall größer als Null ist, kannst du diese Punkte mit einer dahin angepassten Variante vom von mir bereits geposteten VI rausfiltern. Das wiederholst du für alle nicht leeren Intervalle.
Gruß SeBa