Bonjour,
J'ai un programme qui lit des fichiers TECPLOT (*.dat), et donc il lit des valeurs de maillages +variables différents sur plusieurs zones.( donc en gros il lit plusieurs matrices de données réelles ).
Pour chaque zone ( ou matrice) on met les valeurs dans une matrice zone ( détérminée par sa taille au préalable )
C'est la fonction loadPtFmt qui fait cela ( par zone ) ( on a une boucle while pr lire ttes les zones du fichier).
zone = loadPtFmt( nVar, line, fich )
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| def loadPtFmt( nVar, line, fich ):
# A FAIRE : METTRE DES GARDES FOUS
dim = getDims(line)
while dim[2] == 1 and dim[1] == 1 and dim[0] == 1 :
line = fich.readline()
dim = getDims(line)
# A priori, on a bien maintenant la dimension de la zone.
# Reste plus qu'a charger les differents champs :
fields = N.empty(dim+[nVar], N.double)
lgth = dim[0]*dim[1]*dim[2]*nVar
fields.flat = N.fromfile(fich, dtype=N.double, count=lgth, sep=" ")
fields = fields.transpose((2,1,0,3))
return (STRUCTURED,fields) |
Pour acceder aux dimensions de la matrice on fait un : zone[1].shape[0],zone[1].shape[1,zone[1].shape[02]
Ensuite on met toutes les zones ensemble dans une meme variable zones comme ceci :
zones.append((zoneTitle,)+zone)
Je voudrais acceder aux dimensions de chaque zone de zones, seulement je n'y arrive pas ! J'ai toujours la meme erreur : IndexError: list index out of range
Partager