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

Fortran Discussion :

Insérer des lignes dans une matrice


Sujet :

Fortran

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2009
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 23
    Points : 17
    Points
    17
    Par défaut Insérer des lignes dans une matrice
    Bonjour,

    Je voudrais insérer plusieurs lignes dans une matrice à des indices précis (calculés par mon programme).

    Pour cela, j'ai écrit une procédure qui insère une ligne dans une matrice à un certain indice, que j'appelle plusieurs fois. Mais d'une part, ça ne marche pas, et d'autre part, la méthode que j'utilise ne me parait pas efficace du tout.

    Voici un extrait de mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
      real, dimension (nbrows,nbcols) :: matrix
      real, dimension (nbcols) :: row ! row to insert
      integer :: index ! place to insert row
      real, dimension (nbrows+1,nbcols) :: res
     
      res(1:index,1:nbcols) = matrix(1:index,1:nbcols)
      res(index+1,1:nbcols) = row(1:nbcols)
      res(index+2:nbrows+1,1:nbcols) = matrix(index+1:nbrows,1:nbcols)
    Quelqu'un connaît-il une meilleure méthode ?

    Merci

  2. #2
    Membre éclairé Avatar de genteur slayer
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2002
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2002
    Messages : 710
    Points : 825
    Points
    825
    Par défaut
    je ne vois pas ce qui ne marche pas dans ton code mis à part que tu insère après la colone index et non à la colonne index...
    il n'y a que ceux qui savent qui ne savent pas qu'ils savent...
    Libere-toi hacker, GNU's Not Unix!!!

  3. #3
    Membre à l'essai
    Inscrit en
    Juin 2009
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 23
    Points : 17
    Points
    17
    Par défaut
    En fait, ma matrice étant de taille importante, cette méthode n'est pas efficace dans le sens où elle effectue de nombreuses recopies ...

    Pour pouvoir insérer plus efficacement (sans recopie) un élément dans un tableau par exemple, on peut utiliser des listes chaînées ; mais je pensais que c'était beaucoup de travail pour pas grand chose, c'est pourquoi je demandais s'il n'y avait pas un autre moyen (fonction intrinsèque par exemple) d'y parvenir.

    Finalement, j'ai réussi à contourner mon problème...

    Merci quand même

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

Discussions similaires

  1. [AC-2000] Insérer des lignes dans une liste de choix
    Par Aeltith dans le forum VBA Access
    Réponses: 15
    Dernier message: 02/10/2009, 14h18
  2. Supprimer des lignes dans une matrice
    Par Ptinéwik dans le forum MATLAB
    Réponses: 7
    Dernier message: 30/01/2008, 13h55
  3. Insérer des lignes dans une table efficacement
    Par newbie82 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 31/07/2007, 17h01
  4. [VBA-E] Problème pour insérer des lignes dans une feuille Excel
    Par skystef dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/04/2007, 14h13
  5. Insérer des lignes dans une StringGrid
    Par da_latifa dans le forum Composants VCL
    Réponses: 1
    Dernier message: 26/09/2005, 12h45

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