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 :

A null assignment can have only one non-colon index


Sujet :

MATLAB

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2009
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 126
    Points : 45
    Points
    45
    Par défaut A null assignment can have only one non-colon index
    bonjour tout le monde.
    j'ai un tableau de cellules, et je veux qu'une ligne soit toute nulle
    je parcours la ligne colonne par colonne, et je remplace le contenu par [],
    mais il me retourne l'erreur suivante:
    ??? A null assignment can have only one non-colon index.
    est-ce que vous avez une idée??

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut
    Citation Envoyé par najma Voir le message
    bonjour tout le monde.
    j'ai un tableau de cellule, et je veux qu'une ligne soit toute nulle
    je parcours la ligne colonne par colonne, et je remplace le contenu par [],
    mais il me retourne l'erreure uivante:
    ??? A null assignment can have only one non-colon index.
    est ce que vous avez une idée??
    peux tu montrer ton code?
    => si c'est un tableau de cellule alors je pense qu'il fau plutot parcourir les colonnes et faire {0}

    mais peut etre que je n'ai pas bien compris ton probleme c'est pour cela que je pense que c mieux que tu montres ton code

  3. #3
    Membre du Club
    Inscrit en
    Décembre 2009
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 126
    Points : 45
    Points
    45
    Par défaut
    voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    for i=1:size(Pop_Croise,2)
        if(~isempty(Pop_Croise(Nb_Chr_Sel,i)))
            Pop_Croise(Chrom_Sel(Nb_Chr_Sel),i)=[];
        end
    end
    j'ai penser à une idée, est ce que je peut supprimer une ligne d'un tableau,et la ligne suivante devient celle supprimé??

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

    Ça tombe bien, on vient de l'ajouter dans la A null assignment can have only one non-colon index.
    Par contre, si tu veux qu'elle soit toute nulle, ce serait plutôt 0 et non []:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Pop_Croise(Chrom_Sel(Nb_Chr_Sel),i)=0;

  5. #5
    Membre du Club
    Inscrit en
    Décembre 2009
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 126
    Points : 45
    Points
    45
    Par défaut
    et si je veux supprimer une ligne d'un tableau, et décaler les autre, est ce c'est possible???

  6. #6
    Invité
    Invité(e)
    Par défaut
    Qu'entends-tu par décaler?

  7. #7
    Membre du Club
    Inscrit en
    Décembre 2009
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 126
    Points : 45
    Points
    45
    Par défaut
    décaler les autres ligne de tableau qui ont été au dessous de celle supprimer
    par exemple:
    tab=
    1 2 3
    2 3 4
    1 2 3
    si on supprimer la ligne 2 la tab devient:
    tab=
    1 2 3
    1 2 3

  8. #8
    Invité
    Invité(e)
    Par défaut
    Ceci est parfaitement possible:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    tab = [1 2 3
    2 3 4
    1 2 3];
    tab(2,:) = [];
    Mais dans ce cas, ne serai-ce pas plutôt: Pop_Croise(Chrom_Sel(Nb_Chr_Sel),:)=[]; ?

  9. #9
    Membre du Club
    Inscrit en
    Décembre 2009
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 126
    Points : 45
    Points
    45
    Par défaut
    ca serai pas possible pour un tableau de cellule??

  10. #10
    Invité
    Invité(e)
    Par défaut
    Oui, même chose:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    tab = {1 2 3; 2 3 4; 1 2 3}
    tab(2,:) = []

  11. #11
    Membre du Club
    Inscrit en
    Décembre 2009
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 126
    Points : 45
    Points
    45
    Par défaut
    mais moi quand j'utilise [] il me donne l'erreur cité au par avant

  12. #12
    Invité
    Invité(e)
    Par défaut
    Que retourne size(Pop_Croise) ? à priori tu as 3 dimensions donc dois obligatoirement (comme montré dans la FAQ) avoir une seule dimension avec des valeurs.

  13. #13
    Membre du Club
    Inscrit en
    Décembre 2009
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 126
    Points : 45
    Points
    45
    Par défaut
    ca me retourne:

  14. #14
    Membre du Club
    Inscrit en
    Décembre 2009
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 126
    Points : 45
    Points
    45
    Par défaut
    j'ai même ajouter le test sur le fait q'une cellule soit vide:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    for i=1:size(Pop_Croise,2)
        if(~isempty(Pop_Croise(Nb_Chr_Sel,i)))
            Pop_Croise(Chrom_Sel(Nb_Chr_Sel),i)=0;
        end
    end

  15. #15
    Invité
    Invité(e)
    Par défaut
    Le test se ferai plutôt comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(~isempty(Pop_Croise{Nb_Chr_Sel,i})
    Et comme déjà dit la suppression de la ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            Pop_Croise(Chrom_Sel(Nb_Chr_Sel),:)=[];
    Dernière modification par Invité ; 24/06/2011 à 22h30.

  16. #16
    Membre du Club
    Inscrit en
    Décembre 2009
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 126
    Points : 45
    Points
    45
    Par défaut
    quand je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     if(~isempty(Pop_Croise{Nb_Chr_Sel,i}))
    il me donne l'erreur suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ??? Error using ==> isempty
    Too many input arguments.

  17. #17
    Invité
    Invité(e)
    Par défaut
    C'est que Nb_Chr_Sel est un vecteur de plusieurs valeurs, et donc:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(~isempty([Pop_Croise{Nb_Chr_Sel,i}]))
    Que veux-tu faire exactement?
    Quelle est la condition pour que tes lignes soient supprimées? Ici c'est que tes cellules Pop_Croise{Nb_Chr_Sel,i} soient vides, tu supprimes alors les lignes correspondantes complètes.
    Est-ce que c'est ce que tu veux faire?

  18. #18
    Membre du Club
    Inscrit en
    Décembre 2009
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 126
    Points : 45
    Points
    45
    Par défaut
    j'ai un tableau de cellule et je veux supprimer une ligne précise.
    j'ai pas de conditon.
    par exemple si j'ai u tableau tab, je veux supprimer la ligne 7 par exemple.
    en premiers temps,j'ai penser de vider la ligne, puis creer un autre tableau, et lui ajouter les lignes qui sont pas vide,
    mais si c'est possible de la supprimer directement et avoire un tableau avec des lignes sans celle supprimer, c'est bon.
    c'est ce que je veux faire

  19. #19
    Invité
    Invité(e)
    Par défaut
    Dans ce cas, reprend juste mon code du post #10:

  20. #20
    Membre du Club
    Inscrit en
    Décembre 2009
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 126
    Points : 45
    Points
    45
    Par défaut
    quand j'utilise:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    for i=1:size(Pop_Croise,2)
        if(~isempty([Pop_Croise{Nb_Chr_Sel,i}]))
            Pop_Croise(Chrom_Sel(Nb_Chr_Sel),i)=[];
        end
    end
    il me donne encore la même erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ??? A null assignment can have only one non-colon index.

Discussions similaires

  1. Réponses: 1
    Dernier message: 05/04/2011, 00h16
  2. Réponses: 6
    Dernier message: 18/03/2011, 00h27
  3. Réponses: 2
    Dernier message: 04/02/2009, 14h24
  4. error : one non-colon index
    Par rob408231 dans le forum MATLAB
    Réponses: 7
    Dernier message: 21/11/2008, 17h21
  5. [VB.NET] Error: There can be only one 'page' directive
    Par Redouane dans le forum ASP.NET
    Réponses: 2
    Dernier message: 24/11/2004, 20h16

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