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 :

Amélioration des performances d'une fonction - Allocation mémoire d'un tableau


Sujet :

MATLAB

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2007
    Messages : 64
    Points : 29
    Points
    29
    Par défaut Amélioration des performances d'une fonction - Allocation mémoire d'un tableau
    Bonjour,

    J'utilise dans Matlab une fonction qui est appelée un nombre important de fois.
    Dans cette fonction je crée et retourne une structure qui contient des doubles, un tableau de 3x4x3 et un tableau de 16x1.
    Enfin à chaque fois que j'appel cette fonction je sauvegarde cette structure dans un autre tableau (mon application nécéssite un tableau de dimension 274x4x100).
    Evidement la fonction que j'appelle est assez chargée en code et étant appelée 274*4*100 = 109.600 fois elle occupe un temps certain... (+-8 min).

    Pour créer la tableau prcédent (de 274x4x100), qui se trouve dans une boucle, à chaque itération je rajoute de manière incrémentale une dimension au tableau.

    Alors Matlab me signal un warning: Il est plus judicieux de d'abord allouer un esapce mémoire pour ce tableau avec la dimension finale, plutot que réalouer à chaque itération un nouvel espace mémoire plus grand pour faire évoluer le tableau.

    L'aide de Matlab propose d'initialiser le tableau à l'aide de la fonction zeros() & co.
    Cependant etant donné la complexité de mon tableau (tableau de structure) je n peut pas utiliser cette fonction.
    Existe-t-il un autre moyen d'allouer un espace pour mon tableau?

    Merci d'avance à tous,

  2. #2
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    Tu cherches à intialiser un tableau 274x4x100 qui ne contiendra que des structures ?
    Tu peux essayer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tableau=repmat(struct,[274,4,100]);
    A voir après selon la façon dont tu remplis ton tableau.
    Règles du Forum

    Adepte de la maïeutique

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2007
    Messages : 64
    Points : 29
    Points
    29
    Par défaut
    Super...
    Ca roule

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

Discussions similaires

  1. Optimisation et amélioration des performances d'une application PHP5
    Par yanis97 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 26/01/2010, 11h06
  2. [AS2] déclarer des variables dans une fonction
    Par ooyeah dans le forum ActionScript 1 & ActionScript 2
    Réponses: 12
    Dernier message: 02/08/2005, 12h50
  3. Réponses: 7
    Dernier message: 20/03/2005, 14h53
  4. fonction récupérant des valeurs dans une fonction popup...
    Par petitsims dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/01/2005, 14h51
  5. Audit des performances d'une application Web
    Par jpg dans le forum Développement Web en Java
    Réponses: 3
    Dernier message: 16/09/2004, 10h45

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