LabVIEWForum.de
Vergleich und Neusortierung zweier Arrays - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Vergleich und Neusortierung zweier Arrays (/Thread-Vergleich-und-Neusortierung-zweier-Arrays)



Vergleich und Neusortierung zweier Arrays - domdom - 29.11.2016 13:50

Hallo,

lange bin ich mit dem lesen von vorhandenen Beiträgen in diesem Forum wunderbar zurecht gekommen. Nun stehe ich allerdings vor einem Problem, welches ich partout nicht gelöst bekomme.

Es geht um folgendes:
In einem Array werden in Spalte A, Entfernungsangaben (double) in Metern gespeichert und in Spalte B, ein ganzzahliger Wert dazu.
Bsp:
Spalte A Spalte B
Entfernung Wert
1,1 1
1,5 2
2,1 3
3,6 4
6,4 1
7,9 3
11 7
12,3 1

Nun möchte ich im nächsten Schritt, Spalte A durch ein beliebiges Intervall (hier bspw. 2m) ersetzen und jeweils nur den größten Wert aus Spalte B dazu anzeigen lassen.
Also:
Spalte C Spalte D
Intervall Max Wert im Intervall aus Spalte B
2 3
4 4
6 1
8 3
10 0
12 7
14 0

Hierzu vergleiche ich die Werte aus Spalte A mit den Werten des Intervalls (Spalte C) mit "In Range and Coerence". Wie ich im nächsten Schritt allerdings noch den größten Wert aus Spalte B zugeordnet bekomme ist mir schleierhaft.

Mein Problem hierbei liegt bei mehrfach vorkommenden Werten in einem Bereich.
Ich habe mal den Versuch das Problem anzugehen angehängt.


RE: Vergleich und neusortierung zweier Arrays - GerdW - 29.11.2016 14:40

Hallo domdom,

Zitat:Ich habe mal den Versuch das Problem anzugehen angehängt.
Hier ist schon das erste Problem: du hast nur ein Bild angehangen - das lässt sich aber in LabVIEW so schlecht editieren!
Wie wäre es mal mit einem VI!?

Zitat:Mein Problem hierbei liegt bei mehrfach vorkommenden Werten in einem Bereich.
Mein Problem liegt in der unsauberen Definition deines Problems…
Wie ist dein Intervall definiert? Dass das Intervall "2m breit" sein soll, habe ich gelesen - aber was soll der Mittenwert des Intervalls sein?

Zitat:Hierzu vergleiche ich die Werte aus Spalte A mit den Werten des Intervalls (Spalte C) mit "In Range and Coerence". Wie ich im nächsten Schritt allerdings noch den größten Wert aus Spalte B zugeordnet bekomme ist mir schleierhaft.
Sobald du mal ein Schieberegister benutzt, wird die Sache sehr einfach…

Code:
FOR each value in column A
  determine interval
  get current value of column C for interval
  get max(value of column B, value of column C)
  store max-value in column C for current interval
NEXT



RE: Vergleich und neusortierung zweier Arrays - domdom - 29.11.2016 14:50

Hallo GerdW,

das VI habe ich mal angehängt.

Der Mittelwert ist im Grunde egal. Alle Werte aus Spalte A die kleiner sind als der obere Grenzwert des Intervalls, gehören in das Intervall.
Also 1; 1,5; 1,9 gehören zu 2 und 2,01 bis 2,99 gehören zu 3


RE: Vergleich und neusortierung zweier Arrays - GerdW - 29.11.2016 14:53

Hallo domdom,

zwei Dinge:
1. Kannst du dein VI bitte für LV2014 konvertieren und hier anhängen?
2. Profil_ergaenzen, wenn du jetzt mit LV2016 arbeitest!

Zitat:Der Mittelwert ist im Grunde egal. Alle Werte aus Spalte A die kleiner sind als der obere Grenzwert des Intervalls, gehören in das Intervall.
Also 1; 1,5; 1,9 gehören zu 2 und 2,01 bis 2,99 gehören zu 3
Eben das meinte ich mit "schlecht definiert"!
Oben gehörte der Wert 2.1/3 noch zum ersten Intervall, jetzt gehört er plötzlich zum 2. Intervall…

Nochmal: Bitte deine Aufgabe genau definieren!
(Seitenhieb: Wie willst du jemals genau arbeitende Algorithmen implementieren, wenn du nicht mal in der Lage bist, deine Aufgabenstellung genau zu beschreiben?)


RE: Vergleich und neusortierung zweier Arrays - domdom - 29.11.2016 14:56

Sry, wird gemacht :-)


RE: Vergleich und neusortierung zweier Arrays - GerdW - 29.11.2016 15:11

Hallo domdom,

warum steht in deinem Profil, dass du LV2015 verwendest, wenn du hier LV2016-VIs hochlädst?

Als Lösungsanreiz auch mal ein Bild:
[attachment=56982]


RE: Vergleich und neusortierung zweier Arrays - domdom - 30.11.2016 09:13

Hallo,

vielen Dank für den Lösungsansatz. Auf die Idee das mit Threshold 1D Array zu machen wäre ich sicherlich nie gekommen.
Und die Variante, dass Intervall mit einer Rampenfunktion zu lösen ist so sicherlich auch wesentlich eleganter.


VG