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 :

[cell] Gestion de tableaux - Suppression de lignes


Sujet :

MATLAB

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut [cell] Gestion de tableaux - Suppression de lignes
    Bonjour à tous !

    Appel au secours : après avoir retourné le problème dans tous les sens, je ne trouve définitivement pas la solution.
    Il s'agit de gestion de tableau : j'ai plusieurs vecteurs (variables{1},variables{2},variables{3}) regroupés dans un tableau appelé "variables". Ces vecteurs sont de même taille.
    Concrètement, je voudrais que lorsqu'une ligne d'un de ces vecteur n'est pas un nombre, cette ligne soit supprimée dans tous les autres vecteurs.

    Voici le code, suivi de l'explication ligne à ligne de ce que j'ai fait :
    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
    % DELETION OF INVALID VALUES
     
    function [variables] = deletion(variables)
     
    varclear = variables;
     
    for i = 1:length(variables)
        j = 1;
        l = 1;
        while j<length(variables{1})+1 && l<length(varclear{1})+1
            if isnan(variables{i}(j)) == 1
                for k = 1:length(variables)
                    varclear{k}(l) = [];
                end
            else
                l = l+1;
            end
            j = j+1;
        end
    end
    variables = varclear;
     
    disp(' ')
    disp([num2str(length(variables{1})) ' values considered.'])
    Explication :

    l.3 : la fonction s'appelle "deletion". Elle prend en entrée "variables". En sortie, on obtient d'autres valeurs de "variables"
    (NB : le fait que l'input et l'output de "deletion" aient le même nom ne semble pas avoir d'influence)

    l.5 : introduction d'une variable temporaire "varclear", identique à "variables"

    l.7 : on parcourt l'ensemble des variables (variables{1}, variables{2}, variables{3})
    l.10 : et on définit une variable j (resp l) associée à la longueur des "variables" originales (resp "varclear")

    l.11 : si la cellule étudiée au sein de la "variables" étudiée n'est pas un nombre
    l.12 & 13 : alors on supprime cette cellule (indice l) pour toutes les "varclear" (indice k)
    (NB : "variables" reste inchangé)
    (NB2 : dans ce cas, la prochaine cellule de la "varclear" à étudier a toujours pour indice l puisque l'ancienne cellule indicée l a été supprimée)

    l.15 : si la cellule étudiée au sein de la "variables" étudiée est un nombre
    l.16 : alors la prochaine cellule de la "varclear" a étudier aura pour indice l+1

    l.18 : dans tous les cas, la prochaine cellule de la "variables" a étudier aura pour indice j+1

    l.21 : "variables" est redéfinie comme "varclear"


    Concrètemement, toutes les valeurs NaN sont bien supprimées des vecteurs de "variables", mais d'autres valeurs chiffrées le sont également, ce qui me fait perdre beaucoup de données . . .
    Une idée du pourquoi ça ne fonctionne pas ????

    Merci à vous !
    Dernière modification par Invité ; 14/10/2011 à 10h30.

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

Discussions similaires

  1. [XL-2003] Ajout et suppression de lignes dans 2 tableaux simultanéments
    Par olivier777 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/09/2012, 13h29
  2. tableaux dynamique avec ajout et suppression de lignes
    Par paolo2002 dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 06/06/2008, 17h01
  3. [Tableaux] Suppression de lignes dans un tableau
    Par lodan dans le forum Langage
    Réponses: 9
    Dernier message: 15/09/2006, 20h08
  4. Réponses: 4
    Dernier message: 02/07/2004, 19h14
  5. [VB.NET] Suppression de ligne dans un DataTable
    Par seemax dans le forum Windows Forms
    Réponses: 7
    Dernier message: 06/05/2004, 14h19

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