IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

incomprehension d'une instruction


Sujet :

Python

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2010
    Messages : 88
    Points : 53
    Points
    53
    Par défaut incomprehension d'une instruction
    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).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    zone = loadPtFmt( nVar, line, fich )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 758
    Points : 970
    Points
    970
    Par défaut
    bonjour,

    euh c'est pas très clair si ? pourtant je connais Tecplot alors je pars avec un petit avantage

    la fonction loadPtFmt renvoie une zone selon la première ligne de code. seulement à la fin de la fonction on a un:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return (STRUCTURED,fields)
    kesako le STRUCTURED ? ce sont les coordonnées des noeuds de la zone en maillage structuré ?

  3. #3
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2010
    Messages : 88
    Points : 53
    Points
    53
    Par défaut
    Pardon j'ai oublié de mentionner le STRUCTURED qui a une valeur logique de 1.

    en gros STRCTURED = 1.

    J'ai retrouvé les dimensions avec la commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        print " nombre de zone par fichier",len(zones)
        for i in range(0,len(zones)) :
            print " **************************  voici les dims de la zone i tecplot",zones[i][2].shape[0],"  ",zones[i][2].shape[1],"  ",zones[i][2].shape[2]
    Et ça marche bien !

Discussions similaires

  1. [C#] Comment exécuter une instruction dynamiquement ?
    Par NeoMan dans le forum Contribuez
    Réponses: 11
    Dernier message: 15/01/2009, 16h45
  2. Réponses: 13
    Dernier message: 27/12/2005, 09h17
  3. Une instruction s'execute qd on appuie sur entree
    Par nbutin dans le forum C++Builder
    Réponses: 1
    Dernier message: 17/08/2004, 00h48
  4. Problème avec une instruction OUTER /Postgres
    Par Volcomix dans le forum Langage SQL
    Réponses: 14
    Dernier message: 21/04/2004, 16h56
  5. Passer de la zone d'édition vers une instruction sql
    Par tripper.dim dans le forum C++Builder
    Réponses: 2
    Dernier message: 27/11/2002, 14h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo