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 :

temps d'exécution très lent pour les boucles for


Sujet :

MATLAB

  1. #1
    Membre confirmé Avatar de NELLLY
    Inscrit en
    Mars 2007
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 94
    Par défaut temps d'exécution très lent pour les boucles for
    Salut
    j'ai un programme de ce genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    for h=0.01:0.01:10
     for p=0:0.001:0.999
        calcul matriciel
    end
    end
    le problème ça prend énormément de temps pour l'exécution du programme. alors qu'en C++ ça prendrai 3 heures avec d'autres programmes de ce genre. Je voudrai garder mon programme avec matlab, ya-t-il une solution pour que le temps d'exécution soit plus rapide sans avoir recours au multidimensional arrays?
    Dans mon programme ça sera des matrices 4D.

  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 317
    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 317
    Par défaut
    Il faudrait vraiment savoir en quoi consiste le calcul effectué dans la boucle interne pour pouvoir de répondre de manière efficace.

  3. #3
    Membre Expert
    Inscrit en
    Août 2010
    Messages
    1 124
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 1 124
    Par défaut
    Bonjour,

    En gros:
    - Si les calculs matriciels sont indépendants les uns des autres, il faut paralléliser (parfor)
    - Sinon, il faut les exprimer vectoriellement (en aggrégeant les matrices par blocs), ce qui réduit le temps de calcul mais fait souvent exploser la mémoire.
    - Enfin, dernière solution, recoder le calcul en C et le wrapper depuis matlab

Discussions similaires

  1. Existe-t-il un équivalent de "Loop" pour les boucles "For"
    Par statista dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 04/04/2011, 13h32
  2. Temps d'exécution très lent
    Par michelin123 dans le forum MATLAB
    Réponses: 14
    Dernier message: 20/11/2007, 15h17
  3. Réponses: 2
    Dernier message: 01/02/2007, 18h20
  4. SDK trés utile pour les developpeur en VB
    Par sunmed dans le forum Mon programme
    Réponses: 9
    Dernier message: 25/01/2007, 16h56

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