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

MATLAB Discussion :

Concatener vecteur dynamique [Boucle for]


Sujet :

MATLAB

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 002
    Points : 476
    Points
    476
    Par défaut Concatener vecteur dynamique [Boucle for]
    Bonjour,

    Je lis plusieurs fichiers à l'aide de la boucle for.
    A chaque ouverture d'un fichier, j'ai un vecteur de données Data mais de dimension différentes que j'aimerais concaténer à chaque itération.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    for ii = 1:file:totFiles ;
     
    1/ ouverture fichier
    2/ extrait vecteur de données Data(ii) 
    3/ sauver tous les vecteurs qui s'ouvrent au fur et à mesure dans un nouveau vecteur Data_All = [Data(1) Data(2) Data(3) .. Data(ii)..Data(totFiles)) 
     
     
    end
    J'ai alors crée le code suivant (les différents vecteurs Data récupéré des fichiers étant ici transformée par simplement 3 vecteurs: B, C et D)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    B=[1:5];
    C=[1:7];
    D=[1:3];
    
    tailleNow(1) = 0 ;
    
    for ii = 1:3
      
        if ii == 1
            Data=B ;
        elseif ii == 2
            Data=C ;
        elseif ii == 3
            Data=D ;
            
        end
        
        tailleNow(ii+1) = size(Data,2) ;
        
        X=sum(tailleNow(1:ii)) + 1 ;
        Y=sum(tailleNow(1:ii+1)) ;
        
        Data_All(X:Y)=Data ;
        
    end
    Ma question est simple : Y'a t il moyen de faire l'indexage plus simplement?

    Merci d'avance
    OS : taff > Window 7 32bit - Home > Windows 7 64bit
    Matlab : taff > v2013b - Home > r2009a

  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 : 52 884
    Points
    52 884
    Par défaut
    Euh... simplement comme ceci ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Data_All = [];
     
    for ii = 1:3
     
        if ii == 1
            Data=B ;
        elseif ii == 2
            Data=C ;
        elseif ii == 3
            Data=D ;
     
        end
     
        Data_All = [Data_All Data];
     
    end
    Non ?

    Et… arrêtez de mettre des crochets lorsque c'est inutile :

    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
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 002
    Points : 476
    Points
    476
    Par défaut
    voilà, c'est ça..

    merci
    OS : taff > Window 7 32bit - Home > Windows 7 64bit
    Matlab : taff > v2013b - Home > r2009a

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

Discussions similaires

  1. Réponses: 11
    Dernier message: 24/10/2014, 14h45
  2. Réponses: 6
    Dernier message: 10/01/2013, 11h07
  3. [Débutant] Erreur données vecteur avec boucle FOR
    Par fikraag dans le forum MATLAB
    Réponses: 4
    Dernier message: 24/05/2012, 11h22
  4. Réponses: 9
    Dernier message: 15/09/2006, 19h08
  5. Incrémentation dynamique d'un textbox avec une boucle for
    Par Etanne dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 06/03/2006, 15h17

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