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 :

Remplacer l'élément répété dans un tableau par zero


Sujet :

MATLAB

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Inscrit en
    Mars 2011
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Mars 2011
    Messages : 76
    Points : 35
    Points
    35
    Par défaut Remplacer l'élément répété dans un tableau par zero
    Bonjour


    SVP je veux savoir comment remplacer l'élément répété dans un tableau par zero

    exemple on a le tableau suivant:on doit trouver
    Merci beaucoup d'avance

  2. #2
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2019
    Messages : 90
    Points : 254
    Points
    254
    Par défaut
    Bonjour,

    La méthode simple ne demandant pas de trop réfléchir consiste à prendre les éléments de d l'un après l'autre et à regarder si cet élément est déjà dans la partie déjà étudiée de d. Cela pourrait s'écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    clear 
    d=[1 3 2 2 5 4 6 5]
    for k=2:length(d) % for each element of d - exept the first one
        if ismember(d(k), d(1:k-1)) % if the current element d(k) is already in the previous part of the vector
            d(k) = 0 ; % set the current element to zero.
        end
    end
    d
    Il est aussi possible d'utiliser la fonction @unique, qui retourne directement les éléments de d sans les doublons (qui sont donc retirés, et non remplacés par des zéros comme demandé) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [outputVector] = unique(d, 'stable') % returns vector d with removed duplicates
    L'argument "stable" éviter que @unique renvoie les éléments dans l'ordre croissant.
    Il est possible d'utiliser la fonction @unique pour faire ce qui est demandé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    [a,b] = unique(d, 'stable') % returns vector d with removed duplicates
    outputVector = d*0 ; % initialise output vector to zeros
    outputVector(b) = d(b) ; % set the right elemeents of outputVector to the corresponding value from the vector d

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 13/03/2018, 23h39
  2. Remplacer du texte dans un tableau par une image
    Par vandman dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 23/06/2016, 15h05
  3. Réponses: 4
    Dernier message: 07/05/2009, 13h50
  4. [Collections]enlever des éléments répétés dans une ArrayList
    Par apan dans le forum Collection et Stream
    Réponses: 9
    Dernier message: 23/03/2006, 13h28
  5. Trier les données dans 1 tableau par ordre décroissant
    Par Blunet dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 23/11/2005, 09h56

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