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 :

Index of element to remove exceeds matrix dimensions. [Débutant]


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Enseignant Chercheur
    Inscrit en
    Décembre 2011
    Messages
    172
    Détails du profil
    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Décembre 2011
    Messages : 172
    Par défaut Index of element to remove exceeds matrix dimensions.
    Bonjour a tous
    j'ai obtenu l'erreur suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ???  Index of element to remove exceeds matrix dimensions.
     
    Error in ==> essai at 32
            X2(a(k),:)=[];
    lorsque j'ai exécuté mon code:

    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
    24
     
    X2=zeros(20,5);
    X1=[7 8 9 10 11 2 3 4 5 8 7 9 4];
    for i=1:5
        X2(1:length(X1),i)=X1;
    end
    [n m]=size (X2);
    % a: va contenir l'indice des cases qui vérifie le test if
    a=[];
    for i=1:n
         points=X2(i,:);
          for g=1:length(points)
              if  points(g)<=0|| round( points(g))==0
                  a(end+1)=i;
                  break;
              end 
          end                      
    end
         l=length(a);
         % l:le nombre de cases qui vérifie le test if du tableau "points"
         for k=1:l
            X2(a(k),:)=[];
            Y2(a(k),:)=[];
         end

    veuillez m'aider
    merci

  2. #2
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Par défaut
    Bonjour,

    Celà vient du fait qu'il ne faut pas utiliser de boucle pour cette opération, tu peux remplacer le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    for k=1:l
            X2(a(k),:)=[];
            Y2(a(k),:)=[];
    end
    Par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    X2(a,:) = [];
    Y2(a,:) = [];
    De plus, je pense que tu n'as sans doute pas besoin de boucle pour faire le traitement qui définit les valeurs de a, ni pour remplir ta matrice X2.

    Duf

  3. #3
    Membre très actif
    Enseignant Chercheur
    Inscrit en
    Décembre 2011
    Messages
    172
    Détails du profil
    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Décembre 2011
    Messages : 172
    Par défaut
    Citation Envoyé par duf42 Voir le message
    Bonjour,

    Celà vient du fait qu'il ne faut pas utiliser de boucle pour cette opération, tu peux remplacer le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    for k=1:l
            X2(a(k),:)=[];
            Y2(a(k),:)=[];
    end
    Par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    X2(a,:) = [];
    Y2(a,:) = [];
    De plus, je pense que tu n'as sans doute pas besoin de boucle pour faire le traitement qui définit les valeurs de a, ni pour remplir ta matrice X2.

    Duf
    merci pour la reponse
    mais j'obtiens encore la meme erreur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ???  Index of element to remove exceeds matrix dimensions.
     
    Error in ==> essai at 38
        Y2(a,:) = [];
    la boucle c'est juste un exemple pour tester, en réalité je manipule des grands matrices

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

    Cela veut simplement dire que au moins un élément de a dépasse les dimensions de Y2.

  5. #5
    Membre très actif
    Enseignant Chercheur
    Inscrit en
    Décembre 2011
    Messages
    172
    Détails du profil
    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Décembre 2011
    Messages : 172
    Par défaut
    Citation Envoyé par Winjerome Voir le message
    Bonjour,

    Cela veut simplement dire que au moins un élément de a dépasse les dimensions de Y2.
    j'ai pas compris, vous pouvez m'expliquer plus?

  6. #6
    Invité
    Invité(e)
    Par défaut
    Un exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Y2 = [1 2; 3 4];
    a = 3;
    Y2(a,:) = [] % On souhaite supprimer la troisième ligne alors que Y2 est seulement de taille [2 2]
    ???  Index of element to remove exceeds matrix dimensions.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 29/01/2010, 21h01
  2. "Index exceeds matrix dimensions. " erreur
    Par M.Chaabane dans le forum MATLAB
    Réponses: 2
    Dernier message: 04/11/2008, 16h54
  3. error : index exceeds matrix dimensions
    Par spinalrock dans le forum Images
    Réponses: 21
    Dernier message: 29/05/2008, 11h18
  4. Message d'erreur "Index exceeds matrix dimensions."
    Par bela1280 dans le forum MATLAB
    Réponses: 1
    Dernier message: 21/04/2007, 13h27
  5. Erreur "Index exceeds matrix dimensions"
    Par usama2 dans le forum MATLAB
    Réponses: 2
    Dernier message: 06/03/2007, 00h34

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