Messwerte sortieren

OP #1053485
Lesenswert?

Hallo,

irgendwie stehe ich gerade voll auf dem Schlauch.
Ich habe 3 Messwerte, channelx, channely und channelz (Wertebereich: 
-4000 bis +4000). Diese Werte würde ich gerne der Größe nach sortieren.
Das ganze soll nach Möglichkeit ohne implementierung komplexer 
Sortieralgorithmen gehen, sind ja nur die drei Werte.
Mein eigentliches Problem ist folgendes:

Wenn ich drei Messwerte sortiere, dann anhand ihrer Werte. Als Ergebnis 
bekomme ich die Werte in geordneter Reihenfolge, aber woher habe ich 
denn die Zuordnung zwischen Wert und Variablennamen. Schwer Auszudrücken 
irgendwie, ein Beispiel:
x = 1, y = 7, z = 3
Diese Werte schreibe ich z.B. in ein Array. Dann vergleiche ich und 
sortier die um, krieg ich wohl noch hin, aber wenn ich am ende eine 
Liste von 1, 3, 7 erhalte, wie weiss ich dann welcher Wert zu welcher 
Variable gehört?

Ich hoffe jemand entfernt mal das Brett von meinem Kopf.
Gast #1053488
Lesenswert?

du machst aus deiner n x 3 Matrix eine 3n x 2 Matrix. In der ersten 
Spalte stehen nur die Symbole 'x','y','z' in der zweiten deine 
Messwerte. Dass du insgesamt mehr Sepicher brauchst, nimmst du in kauf.
#1053489
Lesenswert?

Mach ein struct mit Wert und Variablennamen.
Dann Sortierst du nach den Werten im Struct und der variablenname bleibt 
erhalten...
1
typedef struct{
2
  char name;
3
  uint16 value;
4
} Koordinate;
5

6
...
7

8
... fnc (...){
9
// Variable anlegen
10
Koordinate channelx, channely, channelz;
11

12
// Werte zuweisen
13
channelx.name = x;
14
channelx.value = get_Value();
15
...
16

17
//Sortieren wie auch immer
18
if(channelx.name < wasauchimmer)
19
  ersterwert = & channelx;
20

21
// Frage nach dem namen
22
werwarerster = ersterwert->name;
23
}
Persönliche Seite #1053490
Lesenswert?

Du machst IMHO einen Denkfehler, wenn du die Werte verschiedener 
Messkanäle untereinander ("iese Werte schreibe ich z.B. in ein Array") 
sortierst. Ich würde mehrere Arrays benutzen und nur die Werte eines 
Messkanals sortieren und dann die anderen Werte "mitziehen"

Unsortiert:

Index Messung    channelx channely channelz
0        1           1        7        3
1        2           0        5        8
2        3           3        10       2

Sortiert z.B. nach channelx:

Index Messung    channelx channely channelz
0        2           0        5        8
1        1           1        7        3
2        3           3        10       2
OP #1053510
Lesenswert?

Hui, danke für die schnellen Antworten schonmal.

Erstmal zu Stefan: Das Problem ist, dass ich erstmal nur eine Messung 
habe. Die Daten werden sortiert, verarbeitet, regeln etwas und 
anschliessend gibts dann viel später eine neue Messung.

Zu Bertram: Die Idee mit dem struct gefällt mir sehr gut, zumal die 
ganze SAche nach hinten raus auch noch komplizierter wird. Abhängig vom 
Vorzeichen des Wertes werden u.a auch noch unterschiedliche Kanäle 
angesteuert usw. Alles Informationen die sich in einer solchen Struktur 
gut mit einbauen lassen.

Ich hab die mIttagspause nun erstmal zu denken, mahlzeit. ;)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren