Frage zu komplexer Datenstruktur mit Arrays/Hashes

02/03/2013 - 20:33 von Astrid | Report spam
Hallo zusammen!

Habe 8 Dateien. Jede Datei hat 15 Spalten, die erste Spalte ist eine
ganzzahlige Zeit in Sekunden, die anderen 14 Spalten sind
Datenspalten.
Es deckt aber nicht jede Datei den gleichen Zeitbereich ab.
Z.B. geht Datei1 von 0 bis 100 Sekunden, Datei2 von 0 bis 150
Sekunden, Datei3 von 10 bis 120 Sekunden
usw.

Ich moechte jetzt die Dateien alle einlesen und auf einer geeigneten
Datenstruktur ablegen, wo ich
aber noch nicht weiss, wie ich das geeignet abbilden soll.

Was ich dann brauche ist jeweils ein Vektor, der den Zeitstempel und
dann alle 8 Werte aus den 8 Dateien zu diesem Zeitstempel enthaelt.

Also z.B. den Vektor
0 1.2 2.7 undef 3.5 2.8 undef 3.1 undef

In eine Datenstruktur rein bekomme ich es auch z.B. mit:

foreach $zeile (@datei) {
@tmp = split(/;/,$zeile);
$time = $tmp[0];
if ($time > $maxt) {
$maxt = $time;
}
if ($time < $mint) {
$mint = $time;
}
for ($j = 0; $j < @tmp; $j++) {
$dateiarray[$time][$j] = $tmp[$j+1];
}
push(@alldata,@dateiarray);
}

Aber wie bekomme ich es wieder raus?
So hatte ich gedacht, dass es vielleicht geht, aber
da will er dann die Syntax in der print alldata Zeile nicht.

# ueber alle Zeitschritte
for ($k = mint; $k <= $maxt; $k++) {
print "$k ";
for ($j = 0; $j <= 7; $j++) {
print "$alldata[$j][[$k][$j]] ";
}
print "";
}

Oder ist da irgendwas mit Hashes besser?

Gruss, Astrid
 

Lesen sie die antworten

#1 Astrid
02/03/2013 - 20:37 | Warnen spam
P.S. Ueber die erste For-Schleife laeuft noch eine Schleife ueber
alle meine 8 Eingabedateien. Hatte ich vergessen, sorry.

Gruss, Astrid

Ähnliche fragen