Mehrdimensionale Matrix im Speicher ablegen

18/06/2010 - 20:44 von Sven Schulz | Report spam
Hallo,

kann mir jemand erklàren (oder einen Link nennen) wie ich ohne Hilfe des
Compilers eine Matrix mit drei Dimensionen hintereinander im Speicher
ablege? Nach dem Ablegen würde ich gerne die Inhalte der einzelnen Zeilen
und Spalten auslesen und veràndern wollen (die aber hintereinander im
Speicher abgelegt sind).

Aber das Hauptziel ist:

Ich hoffe wenn ich es für drei Dimensionen verstanden habe, dann verstehe
ich es auch für n-Dimensionen. Ich brauche ein Ablage- und Zugriffskonzept
für Matrizen mit deutlich mehr als 3 Dimensionen.

Zur Zeit habe ich aber keinen Plan wie das gehen soll


Sven
 

Lesen sie die antworten

#1 Bastian Erdnuess
18/06/2010 - 21:24 | Warnen spam
Sven Schulz wrote:

kann mir jemand erklàren (oder einen Link nennen) wie ich ohne Hilfe des
Compilers eine Matrix mit drei Dimensionen hintereinander im Speicher
ablege? Nach dem Ablegen würde ich gerne die Inhalte der einzelnen Zeilen
und Spalten auslesen und veràndern wollen (die aber hintereinander im
Speicher abgelegt sind).



Passen die Daten auf einmal in den Speicher?

Wenn ja, dann ist es ganz einfach. Hat die Matrix S Spalten, Z Zeilen
und E Ebenen einfach das Element in Spalte s, Zeile z und Ebene e an
Position (e * Z + z) * S + s in einen linearen Speicher mit E * M * N
Elementen schreiben. Dabei werden die Positionen praktischerweise von 0
startend indiziert.

Wenn sie nicht auf einmal in den Speicher passen, ist das aber nicht
optimal.

Aber das Hauptziel ist:

Ich hoffe wenn ich es für drei Dimensionen verstanden habe, dann verstehe
ich es auch für n-Dimensionen. Ich brauche ein Ablage- und Zugriffskonzept
für Matrizen mit deutlich mehr als 3 Dimensionen.

Zur Zeit habe ich aber keinen Plan wie das gehen soll



((((f * E + e) * D + d) * C + c) * B + b) * A + a

Gruß,
Bastian

Ähnliche fragen