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 :

Recherche de la plus proche valeur d'une cible dans une matrice


Sujet :

MATLAB

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juillet 2007
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 49
    Points : 25
    Points
    25
    Par défaut Recherche de la plus proche valeur d'une cible dans une matrice
    Bonjour à tous,

    Je voudrais, dans une matrice m-n, déterminer les (la) valeur les (la) plus proche(s) d'une cible, que je détermine auparavant. J'ai tenté find, mais il faut lui donner une valeur précise, et si la cible n'est pas dans la matrice, il ne me retourne rien (normal).

    J'ai alors cherché une fonction permettant de trouver la valeur la plus proche dans une matrice, mais n'est pas trouvé.

    Je travaille sour Matlab R2007a.

    Est ce que quelqu'un aurait une idée ?

    Merci d'avance

    Julien

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    27
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 27
    Points : 24
    Points
    24
    Par défaut
    Essaye
    soit M ta matrice, X ta cible
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    [tmp,ind1]=min(abs(M-ones(size(M)*X)));
    [tmp2,ind2]=min(tmp);
    near_cible=M(ind1,ind2);
    Il y a surement plus simple mais bon ça fonctionne.

  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 307
    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 307
    Points : 52 888
    Points
    52 888
    Par défaut
    Citation Envoyé par petit806 Voir le message
    Il y a surement plus simple mais bon ça fonctionne.
    Je ne suis pas sûr

    Pourquoi ne pas simplement faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    M=rand(3)
     
    X=.2
     
    [pasbesoin,idx]=min(abs(M(:)-X));
     
    M(idx)
    Lire la : Qu'est-ce que l'indexage linéaire ?

    Ainsi que ce tutoriel : Introduction à la gestion des matrices

  4. #4
    Nouveau membre du Club
    Inscrit en
    Juillet 2007
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 49
    Points : 25
    Points
    25
    Par défaut
    Y a un truc que je ne comprends pas cela dit, dans ma matrice je cherche ma cible dans deux dimensions, et ce que tu dis Dut ne comprend qu'une dimension.

    petit806, il y a une erreur de parenthèse dans ton code, mais même en réglant ca ca ne marche pas ... Je trouve bien une valeur, mais si je regarde les valeurs voisines, certaines sont plus proches de ma cible. En en fait, near_cible n'est pas une vlaue mais un vecteur de valeurs, car ind1 n'est pas une valeur mais un vecteur des emplacements des valeurs de tmp ...

    Je suis assez confus dans tout ca, car à cela s'ajoute des variables qui ne changent rien ici à ce que je demande, mais qui alourdisse le processus.

    Une autre idée ?

    Julien

  5. #5
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 307
    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 307
    Points : 52 888
    Points
    52 888
    Par défaut
    Citation Envoyé par JuLpM Voir le message
    Y a un truc que je ne comprends pas cela dit, dans ma matrice je cherche ma cible dans deux dimensions, et ce que tu dis Dut ne comprend qu'une dimension.
    Prend bien le temps de lire le tutoriel et plus particulièrement la partie consacrée aux techniques d'indexage des matrices.

  6. #6
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut
    Salut !

    Tout d'abord, une remarque de nature terminologique, mais qui a son importance: l'objet sur lequel tu travailles n'est pas une matrice, mais un simple tableau.

    Ensuite, quelques questions: les valeurs contenues dans ton tableau sont-elles strictement indépendantes l'une de l'autre? Tombent-elles du ciel ou représentent-elles une grandeur physique ou autre? En bref, il nous serait beaucoup plus facile de t'aider si tu nous soumettais ton problème dès le début et non à un stade intermédiaire d'une tentative de résolution.

    Jean-Marc Blanc

Discussions similaires

  1. Réponses: 4
    Dernier message: 15/10/2009, 13h33
  2. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 13h35
  3. portée d'une variable dans une fonction dans une méthode
    Par laurentg2003 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/06/2009, 19h05
  4. [POO] dans une classe, appeler une fonction dans une méthode
    Par arnaudperfect dans le forum Langage
    Réponses: 3
    Dernier message: 26/08/2007, 23h04
  5. Envoyer une formulaire dans une page dans une Frame
    Par zooffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 29/06/2007, 10h13

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