Laden...

Datentyp für mehrdimensionale Matrix-ähnliche Struktur gesucht

Erstellt von digi333 vor 13 Jahren Letzter Beitrag vor 13 Jahren 1.700 Views
D
digi333 Themenstarter:in
290 Beiträge seit 2006
vor 13 Jahren
Datentyp für mehrdimensionale Matrix-ähnliche Struktur gesucht

Ich möchte eine Matrix berechnen. Das Problem ist die Matrix kann mehr als 2 Dimensionen haben.

Ich habe mehrere Vektoren mit unterschiedlichen Längen... zum Beispiel habe ich mal 4 Vektoren mit 5 Double-Werte. Jetzt möchte ich jeden Wert von jedem Vektor mit jedem anderen Wert der anderen Vektoren abziehen um anschließend sagen zu können welcher der kleinste Wert mit welcher Kombination ist.

Das klingt im ersten momentan nach Listen und For-Schleifen, aber wie baut man es zusammen oder gibt es einen anderen Datentyp der das lösen kann? Es können nämlich auch mal 6 Vektoren sein und Vektoren mit unterschiedlicher Länge.

5.658 Beiträge seit 2006
vor 13 Jahren

Wenn ich es richtig verstehe, reicht für dich ein Array von Vektoren aus. Evtl. kannst du auch eine Basisklasse für alle Vektoren (mit unterschiedlicher Anzahl von Elementen) erstellen, auf der die Matrix basiert. Wenn du mehr Funktionen benötigst, als aus deinem Beitrag hervorgeht, kannst du mal bei CodeProject oder so schauen, da gibt es jede Menge solcher generischen Matrix-Klassen.

Weeks of programming can save you hours of planning

6.911 Beiträge seit 2009
vor 13 Jahren

Hallo,

Stichwort: jagged array

Über diese(n) iterierst du dann per for-Schleifen.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

5.299 Beiträge seit 2008
vor 13 Jahren

Wenn ich dich richtig verstehe, hast du nicht ein Problem, wie eine Matrix definieren, sondern eher, wie über eine Anzahl von Vektoren permutieren.
Ja, gut, die Vektoren sollte man in ein jagged Array, bzw in eine Liste von Listen aufnehmen, zb.


         var vectors = new List<List<int>>();
         vectors.Add((new[] { 2, 4, 7 }).ToList());
         vectors.Add((new[] { 2, 12, 99, 2 }).ToList());
         vectors.Add((new[] { 1, 2 }).ToList());

Aber jetzt den Algo finden, der alle möglichen 3er Gruppen findet...

edit: ...und der mit 4 vektoren immer noch täte...

Der frühe Apfel fängt den Wurm.