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 les éléments identiques d'une matrice par NaN


Sujet :

MATLAB

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 002
    Points : 476
    Points
    476
    Par défaut Remplacer les éléments identiques d'une matrice par NaN
    Bonjour,

    Voilà une matrice A :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    A=[1 2 3 3 3 4 5 6 6 6 6]
    J'aimerais que tous les doublons de valeurs soient mis à NaN:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    A=[1 2 3 nan nan 4 5 6 nan nan nan]
    J'ai même pas réussi avec une boucle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     A=[1 2 3 3 3 4 5 6 6 6 6]
    for i = 1:length(A)-1
    if A(i+1)==A(i)
    A(i+1)=nan;
    end
    end
    A
    retourne évidemment :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    A =
     
         1     2     3   NaN     3     4     5     6   NaN     6   NaN
    Une idée de passage?

    Merci
    OS : taff > Window 7 32bit - Home > Windows 7 64bit
    Matlab : taff > v2013b - Home > r2009a

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 52 884
    Points
    52 884
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    A = [1 2 3 3 3 4 5 6 6 6 6]
     
    d = [false diff(A)==0];
     
    A(d) = nan
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 002
    Points : 476
    Points
    476
    Par défaut
    Court, concis, parfait.

    Merci
    OS : taff > Window 7 32bit - Home > Windows 7 64bit
    Matlab : taff > v2013b - Home > r2009a

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

Discussions similaires

  1. Remplacer les zones vides dans une matrice
    Par shan08 dans le forum Reports
    Réponses: 5
    Dernier message: 02/12/2013, 07h40
  2. Réponses: 3
    Dernier message: 10/06/2011, 10h51
  3. Réponses: 11
    Dernier message: 07/03/2010, 21h09
  4. Réponses: 3
    Dernier message: 05/10/2007, 13h19
  5. éléments identiques dans une matrice
    Par isidore dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 11/12/2006, 21h02

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