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 :

Optimisation de code


Sujet :

MATLAB

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 54
    Points : 30
    Points
    30
    Par défaut Optimisation de code
    Bonjour a tous,
    SVP j'ai besoin d'un coup de main pour optimizer mon code, premièrement j'ai un problème de temps d'exécution. La cause :le nombre de boucles imbriquées, pour un vecteur V=1:13 on a 6 boucles imbriquées.....pour un vecteur V=1:100 donc 93 boucles imbriquées.. Je sais que c'est mal mais cela fait plusieurs jours / semaines que je réfléchis à comment optimiser mon code «je travaille sur des parties successive de tous les permutations d'un vecteur » , en vain. Ci-dessous un copier-coller de mon code pour voir si vous avez des idées d'optimisation.
    et puis ce code pour n=13 donc pour n=14 il faut ajouter un boucle ,pour n=16 il faut ajouter 2 boucles ......,et malheureusement je n'ai pas un idée pour écrire un code qui traiter quelque sois le vecteur "n".
    ma situation est trés difficile svp j'ai besoin vraiment d'aide si quelqu'un peut m'aider c'est trés urgent .
    et merci d'avance à ceux qui vont juste essayer de me repondre et m'aider.
    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
    V=1:13;
    n=13;
    for i13=n:-1:1
    for i12=sort(setdiff(n:-1:1,i13),'descend')
    for i11=sort(setdiff(n:-1:1,[i13,i12]),'descend')
    for i10=sort(setdiff(n:-1:1,[i13,i12,i11]),'descend') 
        for i9=sort(setdiff(n:-1:1,[i13,i12,i11,i10]),'descend')
            B=sort(setdiff(n:-1:1,[i13,i12,i11,i10,i9]),'descend');
            M=perms(B(:,end-6:end));
            m=size(M,1);
            for i8=sort(setdiff(n:-1:1,[i13,i12,i11,i10,i9]),'descend')
                 t = M;
                 t(t == i8) = max(setdiff(1:n,[i13,i12,i11,i10,i9]));
                 P = [i13*ones(m,1) i12*ones(m,1) i11*ones(m,1) i10*ones(m,1) i9*ones(m,1) i8*ones(m,1) t]; 
     
     
            end
        end
     
    end
    end
    end
    end
    pour bien comprendre le code tester le pour n=6
    V=1:6;
    n=6;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    for i6=n:-1:1
        for i5=sort(setdiff(n:-1:1,i6),'descend')
            B=sort(setdiff(n:-1:1,[i5 i6]),'descend');
            M=perms(B(:,end-2:end));
            m=size(M,1);
            for i4=sort(setdiff(n:-1:1,[i5 i6]),'descend')
                 t = M;
                 t(t == i4) = max(setdiff(1:n,[i5 i6]));
                 P = [i6*ones(m,1) i5*ones(m,1) i4*ones(m,1) t]; 
                      end
        end
     
    end

  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
    Donne nous le code complet pour n=6
    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 membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 54
    Points : 30
    Points
    30
    Par défaut
    il n'y à pas de suite ,
    ma premiére question d'après mon prof c'est comment trouver des parties successive de tous les permutation d'un vecteur .
    ds mon code c'est la matrice P et apres je dois travailler sur chaque P ?

Discussions similaires

  1. optimiser le code d'une fonction
    Par yanis97 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 15/07/2005, 08h41
  2. Optimiser mon code ASP/HTML
    Par ahage4x4 dans le forum ASP
    Réponses: 7
    Dernier message: 30/05/2005, 10h29
  3. optimiser le code
    Par bibi2607 dans le forum ASP
    Réponses: 3
    Dernier message: 03/02/2005, 14h30
  4. syntaxe et optimisation de codes
    Par elitol dans le forum Langage SQL
    Réponses: 18
    Dernier message: 12/08/2004, 11h54
  5. optimisation du code et var globales
    Par tigrou2405 dans le forum ASP
    Réponses: 2
    Dernier message: 23/01/2004, 10h59

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