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 :

compréhension d'un algo


Sujet :

MATLAB

  1. #1
    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 compréhension d'un algo
    salut tous,

    j'ai trouvé dans un poly de cours un algo que je ne comprends pas bien....

    la première partie de l'algo sert à calculer un vecteur T0 qui a "p" composantes.

    ensuite voici l'algo :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    n=p
    for i=1:p-1
        i1=num2str(i);
        i2=num2str(i-1);
        n=n-1;
        for j=1:n
            j1=num2str(j);
            j2=num2str(j+1);
            eval(['T' i1 '('j1')=(2^(2*'i1')*T'i2'('j2')-T'i2'('j1'))/(2^(2*'i1')-1);'])
        end
    end
    En fait je ne suis pas du tout habitué à travailler avec "eval" et du coup je ne comprends pas trop ce que fait l'algo....

    De plus, j'aimerai programmer ceci d'une manière plus classique car le but est de pouvoir aussi le programmer avec d'autre langage plus tard....

    pourriez vous m'aider svp ? merci d'avance

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Regarde simplement ce que retourne (sans oublier les espaces, et d'utiliser la fonction num2str ou sprintf)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ['T' i1 '('j1')=(2^(2*'i1')*T'i2'('j2')-T'i2'('j1'))/(2^(2*'i1')-1);']

  3. #3
    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
    Et pour compléter la précédente réponse , voir la : 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)

  4. #4
    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
    Citation Envoyé par Winjerome Voir le message
    Regarde simplement ce que retourne (sans oublier les espaces, et d'utiliser la fonction num2str ou sprintf)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ['T' i1 '('j1')=(2^(2*'i1')*T'i2'('j2')-T'i2'('j1'))/(2^(2*'i1')-1);']
    je viens de tester le code mais il plante ....

    j'ai dû oublier quelque chose :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ???         eval(['T' i1 '('j1')=(2^(2*'i1')*T'i2'('j2')-T'i2'('j1'))/(2^(2*'i1')-1);'])
                                |
    Error: Unexpected MATLAB expression.
    sinon, ce que j'ai compris d'éval c'est que ça sert à faire plusieurs variables, ici T1, T2... ? par contre on fait une concatenation en même temps et je ne vois pas trop pourquoi ...

    => pourriez vous me dire comment vous réecririez cette ligne sans eval pour que j'y vois plus clair ?

  5. #5
    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
    Il faut ajouter des espaces :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    i1 = num2str(5);
    j1 = num2str(3);
    i2 = num2str(2);
    j2 = num2str(7);
     
    ['T' i1 '(' j1 ')=(2^(2*' i1 ')*T' i2 '(' j2 ')-T' i2 '(' j1 '))/(2^(2*' i1 ')-1);']
    donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    T5(3)=(2^(2*5)*T2(7)-T2(3))/(2^(2*5)-1);
    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)

  6. #6
    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
    merci beaucoup DUT !!!!

    => j'ai compris à présent je pense

    donc dans mon algo il va y avoir autant de variable Ti que d'itération et chaque variable est écrite en fonction des précédentes

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

Discussions similaires

  1. Question de compréhension algo
    Par Invité dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 26/11/2012, 21h25
  2. Problème de compréhension algo
    Par Geekaple dans le forum Débuter
    Réponses: 31
    Dernier message: 06/01/2012, 17h58
  3. Compréhension d'un algo A* en haxe.
    Par thejcdc dans le forum ActionScript 3
    Réponses: 1
    Dernier message: 08/06/2008, 18h14
  4. Cherche l'algo crc 16 bits
    Par icepower dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 21/08/2002, 13h27
  5. Recherche algo tree
    Par Anonymous dans le forum Algorithmes et structures de données
    Réponses: 10
    Dernier message: 24/05/2002, 13h44

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