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 :

Récupérer dans matrice indice d'un certaine valeur


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 127
    Par défaut Récupérer dans matrice indice d'un certaine valeur
    Bonjour,

    A partir d'une matrice, comment faire pour recuperer tout les indices (i,j) où les données sont par exemple égales à 10.

    En faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [I,J]=find(DATA(:,:)==10);
    Ca ne marche pas ... la reponse est :
    Empty matrix: 0-by-2
    Merci de m'aider pour ça ...

  2. #2
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    D=ones(5,5);
     
    D(1,2)=10;
    D(3,5)=10
     
    [i,j]=find(D==10)
    Résultat :
    i =

    1
    3


    j =

    2
    5
    Pourquoi se compliquer la vie ?

    hum... non avec les :: ça aurait dû marcher aussi.
    T'es sûr d'avoir vraiment tes valeurs égales à 10 ? ce ne serait pas des 10 et des chouias ?
    Dans ce cas un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [i,j]=find(abs(D-10)<eps)
    pourrait marcher.

  3. #3
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    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 317
    Par défaut
    Citation Envoyé par hollowdeadoss
    comment faire pour recuperer tout les indices (i,j) où les données sont par exemple égales à 10.
    Et si tu nous disais pourquoi tu veux faire ceci

  4. #4
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 127
    Par défaut
    Merci à tous pour vos reponses.

    En fait la commande au dessus marche bien ...
    Mais, en fait lorsque je l'applique à "NaN" au lieu d'une valeur numerique ça rend l'erreur du dessus. (premier post)

    A la question pourquoi j veux faire ça : en fait j'ai cree un autre post ou je demandais comment faire un graphe 3D avec pour x= vecteur, y=vecteur, z=matrice de données pour chaque couple (x,y) mais avec des données manquantes .... et j'arrivais pas à le faire donc j'essai de retrouver les indices ou il y a une valeur manquante, les enlever et tracer mon champ comme je peux avec une fonction qui me donne pour z une 'couleur plus ou moins chaude' suivant l'importance des données(plus ou moins fortes .... c'est des temperatures les données au passage)

    Voilà si vous pouvez m'aider pour ces problemes je vous en serais reconnaissant.

    Encore merci pour vos reponses


  5. #5
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    Rien n'est égal à Nan même pas Nan
    Essayes :
    Il faut dans ce cas précis utiliser la fonction isnan


    Donc ton premier post était un faux tout s'explique...

  6. #6
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 127
    Par défaut
    Oui j'pensais que c'etait la même chose

    Du coup après comment faire (en evitant au max les boucles) pour virer de ma matrice et de mes vecteurs les [I,J] que j'ai trouvé ?

  7. #7
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    143
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 143
    Par défaut
    virer les elements de ta matrice ca va etre dur, ca va faire des trous.
    il faut virer l'element correspondant dans le vecteur.
    peut-etre le mieux est de virer au depart dans tes vecteurs x et y les elements manquants, et ensuite recrér ta nouvelle matrice z.

  8. #8
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 127
    Par défaut
    j'ai pensé à faire l'inverse c'est à dire chercher les points differents de NaN.

    J'ai réussi. (en mettant que NaN était egal à -32768) et en tapant :

    [I,J]=find(DATA(:,:)~=-32768);

    mais après pour recuperer dans une autre matrice seulement les valeurs de DATA ou c'est different de -32768 j'ai tapé :

    TEMP=DATA(I,J);

    Et là ça m**de completement.
    Pourtant l'idée est là comme ça je recupère facilement ce dont j'ai besoin et le tour est joué aussi de la même façon en virant mes longitudes dans LONG et latitudes dans LAT.

    Après je peux faire ce que je désire avec mes données...

    Quelqu'un pourrait-il m'aider ?

    :P

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 26/01/2014, 13h06
  2. Récupérer une matrice si valeur dans feuille
    Par silenk dans le forum Excel
    Réponses: 1
    Dernier message: 12/06/2013, 16h00
  3. Récupérer dans un mousevent , valeur dans une Matrice
    Par kirua99 dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 27/03/2013, 13h20
  4. Supression dans une table sauf pour certaine valeurs
    Par Nikimizi dans le forum Langage SQL
    Réponses: 4
    Dernier message: 08/03/2013, 15h15
  5. Réponses: 0
    Dernier message: 23/06/2011, 10h39

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