INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Dieses Thema hat akzeptierte Lösungen:

Daten aus einem 1D-Array filtern



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!

25.02.2015, 14:53
Beitrag #1

IngDanny7 Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Feb 2015

2010
2010
DE


Sweden
Daten aus einem 1D-Array filtern
Hallo,

Habe ein kleines Problem bei meinem Projekt und hänge seit den letzten Tagen daran.

Und zwar bekomm ich nach einer Reihe von angewendeten Filtern von einem Bild die erkannten Punkte einer Schweißnaht. Diese Punkte sind dann in einem 1D-Array bestehend aus einem Cluster mit 2 Elementen (X & Y Wert) zusammengefasst.

Mein Problem nun: ich möchte diese Punkte so anzeigen lassen das ich "so gut es geht" nur die Punkte, welche direkt auf der Schweißnaht liegen anzeigen lasse. Dazu muss ich die Y-Werte untereinander vergleichen und dann bei den dazugehörigen X-Werte n schauen welcher näher ist am Mittelwert aller Punkte.
Da an manchen Y-Stellen sogar 3 X-Werte zu finden sind geht es ein wenig über meine Vorstellungskraft wie ich das am einfachsten realisieren könnte. Ich möchte ganz einfach für einen Y-Wert maximal 2X-Werte bekommen, jedoch nur dann 2 wenn dieser auf der anderen Seite der Naht liegt.

Für den weiteren Schritt dachte ich mir dann auch schon ob es funktioniert wenn ich dann zwischen den Punkten interpoliere damit ich so gut es geht die gesamte Schweißnaht umrande für anschließende Vermessung des Abstandes.


Hoffe mir kann jemand helfen.Box

LG

   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.02.2015, 15:28 (Dieser Beitrag wurde zuletzt bearbeitet: 25.02.2015 15:36 von GerdW.)
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Daten aus einem 1D-Array filtern
Hallo Ing,

Zitat:Dazu muss ich die Y-Werte untereinander vergleichen und dann bei den dazugehörigen X-Werte n schauen welcher näher ist am Mittelwert aller Punkte.
Es ist generell ungünstig, Floats auf Gleichheit zu prüfen! Der Vergleich mit Null zählt auch dazu…

Was du machen kannst: den Abstand zweier Punkte berechnen? Wie? Pythagoras hilft…

Tipp: Mit komplexen Zahlen ist ein Abstand sehr schnell berechnet:
   
Genauso kannst du auch den Mittelpunkt berechnen und dann den Abstand aller Punkte vom Mittelpunkt…

Hallo Danny aka Max,

Crossposts bitte immer als solche kennzeichnen!

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.02.2015, 09:24
Beitrag #3

IngDanny7 Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Feb 2015

2010
2010
DE


Sweden
RE: Daten aus einem 1D-Array filtern
Danke für die schnelle Antwort (Ja im englischen Forum hat mein werter Kollege Max, zur Sicherheit, die selbe Frage gepostet)!

Leider wurde meine Frage etwas falsch verstanden:
   

Auf einer Y-Koordinate kann es vorkommen, dass ich mehrere Punkte mit unterschiedlichen X-Koordinaten habe (hier zB. 5 Punkte). Diese sind für jede y-Koordinate unterschiedlich!
Es kann auch vorkommen, dass mehrere Punkte übereinander liegen (3+4), obwohl diese von uns in einer for-Schleife vorher entfernt werden.

Nun ist es mein Ziel aus den 5 Punkten, jene 2 auszuwählen, welche links und rechts vom avg am nächsten sind (Der avg-Punkt wurde vorher bereits berechnet - zur Anmerkung: dieser ist das Ergebnis zweier anderer Punkte, nicht der avg der 5 Punkte).

Das Bild als Beispiel genommen, benötige ich schlussendlich Punkt 2 und 3 oder 4. die anderen Punkte sollen aus dem Array gelöscht werden.


Ich hoffe ich habe mich nun klarer ausgedrückt Box Box
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.02.2015, 09:42 (Dieser Beitrag wurde zuletzt bearbeitet: 26.02.2015 09:44 von GerdW.)
Beitrag #4

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Daten aus einem 1D-Array filtern
Hallo Danny,

Zitat:benötige ich schlussendlich Punkt 2 und 3 oder 4. die anderen Punkte sollen aus dem Array gelöscht werden.
Dann berechne den Abstand deiner Punkte vom Mittelwert (Beispiel siehe im Beitrag zuvor). Wähle die drei Punkte mit den kleinsten Abständen.

Das sind zwei Teilprobleme. Das erste habe ich dir oben schon gezeigt, das zweite erfordert eine Sortierung der Ergebnisse und das Auswählen der ersten drei Resultate. Hört sich nicht schwierig an!
Kleine "Komplikation": du willst Punkte links und rechts vom Mittelwert haben und musst deshalb bei deiner Sortierung darauf achten, jeweils mindestens einen Punkt von jeder Seite zu erwischen…

Zitat:Es kann auch vorkommen, dass mehrere Punkte übereinander liegen (3+4), obwohl diese von uns in einer for-Schleife vorher entfernt werden.
Wie ist das möglich? Dann funktioniert wohl eure "Entfernen-Schleife" nicht…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.02.2015, 11:09
Beitrag #5

IngDanny7 Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Feb 2015

2010
2010
DE


Sweden
RE: Daten aus einem 1D-Array filtern
(26.02.2015 09:42 )GerdW schrieb:  ... und das Auswählen der ersten drei Resultate.

Das ist eben unser Problem. Es sind eben nicht immer drei gleiche Punkte. Es kann sein, dass nur 2 gleich sind oder aber auch 14. Ich muss irgendwie jeden einzelnen Punkt mit jeden anderen vergleichen, daraus die Anzahl der gleichen Punkte herausfinden und dann aus diesen bis auf zwei bestimmte alle löschen.

eines unserer etlichen Lösungsversuche
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.02.2015, 11:16
Beitrag #6

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Daten aus einem 1D-Array filtern
Hallo Danny,

du hängst immer so tolle Bilder an. Dummerweise kann man mit Bilder NICHTS anfangen…

Besser wäre es, wenn du ein VI anhängst. Eines, welches Beispieldaten enthält! (Daten in Arrays anzeigen lassen, Menü->Edit->Aktuelle Werte als Default setzen, speichern)
Und besser wäre es, wenn du eine klare Aufgabenbeschreibung erstellen könntest!

Zitat:Ich muss irgendwie jeden einzelnen Punkt mit jeden anderen vergleichen
Abstand der Punkte berechnen (siehe oben): wenn kleiner als Schwellwert, dann liegen die Punkte übereinander…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.02.2015, 14:51
Beitrag #7

IngDanny7 Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Feb 2015

2010
2010
DE


Sweden
RE: Daten aus einem 1D-Array filtern
Hallo Gerd,

okay hier mein VI samt Werte

10.0 .vi  Werte_sortieren.vi (Größe: 219,17 KB / Downloads: 222)


+

der neueste Lösungsversuch

10.0 .vi  Lösungsversuch.vi (Größe: 13,65 KB / Downloads: 226)

anschlüsse:
array3 = y-Array
array2 = x-Array



Die Idee mit den komplexen Zahlen wird bei uns nicht funktionieren, wir müssen im y-Array schauen an welchen stellen gleiche werte auftreten und dann an diesen Stellen im x-Array die Werte raussuchen und dann nur einen Wert links vom average und einem rechts vom average behalten und zu diesem dann auch den y-Wert wieder dazu schreiben.

So wie ich deinen Vorschlag verstehe funktioniert dieser nur wenn ich y mit x vergleichen möchte...

LG
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.02.2015, 15:25 (Dieser Beitrag wurde zuletzt bearbeitet: 26.02.2015 15:28 von GerdW.)
Beitrag #8

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Daten aus einem 1D-Array filtern
Hallo Danny,

hier mal dein "Werte sortieren" im Anhang.

Ich habe die Rundung nach Int32 weggelassen - ist die sinnvoll und gewollt?
Ihr habt 6706 X-Werte (im Beispiel-VI), die sich auf einen Bereich von 1773.41 bis 1926.21 (Differenz ~= 150) verteilen. Wollt ihr da wirklich gnadenlos die Nachkommastellen wegrunden?
Warum habt ihr 80% Nullen in euren Daten?


Angehängte Datei(en)
10.0 .vi  Werte_sortieren.vi (Größe: 111,77 KB / Downloads: 218)

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.02.2015, 15:28
Beitrag #9

IngDanny7 Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Feb 2015

2010
2010
DE


Sweden
RE: Daten aus einem 1D-Array filtern
Hallo Gerd

(26.02.2015 15:25 )GerdW schrieb:  Ich habe die Rundung nach Int32 weggelassen - ist die sinnvoll und gewollt?

Ich richtete mich nur an deinen Hinweis ;-)
(25.02.2015 15:28 )GerdW schrieb:  Es ist generell ungünstig, Floats auf Gleichheit zu prüfen! Der Vergleich mit Null zählt auch dazu…
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.02.2015, 15:30 (Dieser Beitrag wurde zuletzt bearbeitet: 26.02.2015 15:38 von GerdW.)
Beitrag #10

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Daten aus einem 1D-Array filtern
Hallo Danny,

Zitat:Ich richtete mich nur an deinen Hinweis ;-)
Es ist generell ungünstig, Floats auf Gleichheit zu prüfen! Der Vergleich mit Null zählt auch dazu…
Da wusste ich noch nicht, dass ihr eure Messdaten durch Einfügen von Nullen auf die 5fache Menge aufblast…

Zurück zum Sortier-Problem: Sind die 6700 Werte im Beispiel-VI alle auf eine X-Position bezogen? Wonach bestimmt ihr diese X-Position?
So sehen deine Beispieldaten in einem XY-Graph aus:
   

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  1D Array mit einer Spalte von einem 2D vergleich dementsprechend die 2 Spalte sortien Baron 4 5.362 25.10.2018 10:39
Letzter Beitrag: Baron
Shocked Textdatei filtern Ebe419 2 3.030 15.02.2018 22:23
Letzter Beitrag: Ebe419
  Aus einem Array festgelegte Werte zuweisen Kahlua 7 7.470 19.01.2018 13:42
Letzter Beitrag: Kahlua
  Sensorsignal rauschen filtern herriberry 5 6.112 10.07.2015 07:59
Letzter Beitrag: Hubert R.
  FFT aus einem 1D - Array MaddoxX 3 4.419 05.04.2015 09:20
Letzter Beitrag: MaddoxX
  amplitudemoduliertes Signal filtern Hektor19 4 4.797 18.01.2015 00:27
Letzter Beitrag: Lucki

Gehe zu: