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

Scilab Discussion :

Nom de Variables et Import Fichiers Texte


Sujet :

Scilab

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Nom de Variables et Import Fichiers Texte
    Bonjour,

    Je débute sur Scilab et cherche à faire une opération simple, mais sans succès pour l'instant.

    Je dispose dans mon répertoire de travail de plusieurs fichiers TXT: Int-1000.txt, Int-2000.txt, etc. Ces TXT contiennent des valeurs numériques et ont tous 5 colonnes, mais un nombre de lignes différents.

    Je cherche à créer des variables dont les noms "s'alignent" avec les fichiers. J'irai ensuite travailler sur ces variables.

    Par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    M_1000 = fscanfMat('Int-1000.txt');
    M_2000 = fscanfMat('Int-2000.txt');
    ...
    Je pourrais bien sûr répéter fscanfMat autant de fois qu'il y a de fichiers TXT, mais l'idéal serait d'avoir une boucle for (par exemple).

    Auriez-vous une idée ?

    Merci d'avance.

    P.S.: j'ai parcouru le forum à la recherche d'idée, sans trouver ce que je recherche. J'ai peut être raté quelque chose. Dans ce cas, merci de me pointer vers le message qui répond à ma question!

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 53 166
    Points
    53 166
    Par défaut
    Consulte la FAQ MATLAB à ce sujet : Comment créer dynamiquement des variables nommées A1, A2, A3, ..., AN ?

    Avec Scilab, je te conseille d'utiliser une liste :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    M = list();
     
    for n = 1:3
     
        filename = msprintf("Int-%d000.txt", n);
     
        M(n) = fscanfMat(filename);
     
    end
    Si tu veux vraiment avoir la correspondance avec les indices présents dans le nom des fichiers, tu peux stocker en plus un vecteur :

    Pour récupérer une matrice correspondant à un indice en particulier, tu pourras faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    n = idx==2000;
     
    M(n)
    C'est l'idée
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Bonjour Dut,

    Merci pour cette réponse. C'est parfait. L'utilisation d'une liste convient très bien. J'ai updaté un peu le code pour avoir:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    M = list();
    for n = 1000:100:6500
            filename = msprintf('Int-"+string(n)+".txt');
            M(n) = fscanfMat(filename);
    end
    Grâce à cette liste, je peux aisément récupérer la matrice correspondante au fichier avec un indice cohérent, ou encore récupérer un de ses éléments. Par exemple:

    Merci encore pour le coup de main!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ecrire nom d'une variable dans un fichier texte
    Par julien41 dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 19/07/2012, 11h03
  2. Réponses: 4
    Dernier message: 10/04/2008, 22h23
  3. Import fichier texte avec des champs variables
    Par joshua12 dans le forum Access
    Réponses: 4
    Dernier message: 26/09/2006, 09h06
  4. pb importation fichier texte
    Par borisa dans le forum Access
    Réponses: 5
    Dernier message: 24/02/2006, 17h44
  5. Réponses: 2
    Dernier message: 02/02/2006, 18h21

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