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 :

affecter une matrice a une variable cree par une boucle


Sujet :

MATLAB

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2013
    Messages : 7
    Points : 5
    Points
    5
    Par défaut affecter une matrice a une variable cree par une boucle
    salut a tous
    j ai un probleme pour programmer une boucle
    je voudrais affecter un nom de matrice automatiquement
    puis lui affecter une partie de la matrice tout_script
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
               for i=1:100
                   stri=int2str(i); %**convert an integer to a sting **
                   fichier11 = strcat('face',stri);
                   fichier11=tout_script(:,:,i); 
               end
    merci de votre aide

  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
    Ceci est généralement une mauvaise idée :

    Voir la FAQ : Comment créer des variables nommées A1, A2, A3, ..., AN ?
    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
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2013
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    salut
    je n arrive pas a extraire automatiquement la matrice tout en accordant un le nom de la variale automatiquement
    exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    A = [1 2 3 4 5 ; 1 2 3 4 5 ; 1 2 3 4 5];
    comment extraire A1 et A2 et A3
    avec une boucle for
    mon prog comporte une matrice A= 6*8*100
    je voudrais extraire
    A1 pour la matrice 6*8*1
    A2 pour la matrice 6*8*2
    .
    .
    .
    A100pour la matrice 6*8*100
    j espere l explication de mon probleme est claire
    merci

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    As-tu consulté le lien de Dut ?
    Il t'explique entre autres que cette pratique de créer N variables A1, A2, ... AN est une très mauvaise pratique à éviter à tout prix
    On n'en utilise qu'une sous forme de tableau de cellules.

    Quel est le but final d'effectuer un tel découpage ?

    Pour répondre à ta question :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    A = [1 2 3 4 5 ; 1 2 3 4 5 ; 1 2 3 4 5];
    A(1,:)
    A(2,:)
    A(3,:)
    Ou pour ton tableau 6*8*100 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for k = 1:size(A, 3)
        A(:,:,k)
    end

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut
    moi j'utilise des "cell", par exemple voici le genre de chose que je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    for i=1:10
        matriceI=[i 2*i;9 i];
        A{i}=matriceI;
    end

  6. #6
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Points : 4 661
    Points
    4 661
    Par défaut
    Bonjour,

    La fonction MAT2CELL pourra te permettre d'éviter la boucle.

    Duf
    Simulink & Embedded Coder

    Au boulot : Windows 7 , MATLAB r2016b
    A la maison : ArchLinux mais pas MATLAB

Discussions similaires

  1. Réponses: 7
    Dernier message: 03/10/2007, 17h58
  2. Réponses: 4
    Dernier message: 06/06/2007, 13h32
  3. Réponses: 4
    Dernier message: 16/04/2007, 16h30
  4. variable modifié par une session
    Par Mr Meuble dans le forum Langage
    Réponses: 3
    Dernier message: 08/08/2006, 14h15
  5. contenu d'une variable définit par une autre variable
    Par PuppeT mAsTer dans le forum Langage
    Réponses: 4
    Dernier message: 04/07/2006, 19h32

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