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 :

Trouver valeurs proches de deux vecteurs


Sujet :

MATLAB

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

    Informations forums :
    Inscription : décembre 2008
    Messages : 942
    Points : 451
    Points
    451
    Par défaut Trouver valeurs proches de deux vecteurs
    Bonjour,

    Soit 2 vecteurs A, B de même dimension

    A=[1 15 45 78 103 125]
    et B=[5 14 55 79 125 203]

    J'aimerais trouver les indices de ces vecteurs pour lesquelles leurs valeurs sont très proches (mais pas identiques) et supérieur à une certaine valeur

    Soit ici C=[2 3]

    En gros :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IdxPresquePareil = find(A==B && A>50 && B>50)
    J'ai deux problèmes:

    - Celui de la syntaxe pour mettre plusieurs conditions en utilisant l'indexage logique
    - Celui de mettre un "quasi égale" entre deux valeurs (par exemple, peut varier de 5)

    on pourrait penser à un truc comme :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IdxPresquePareil = find( (A<B+5) || (A<B-5)  && (A>50) && (B>50) )
    Mais évidemment ce n'est pas bien syntaxé et peut être qu'il y a mieux..

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

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

    Informations forums :
    Inscription : décembre 2008
    Messages : 942
    Points : 451
    Points
    451
    Par défaut
    ha je crois que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    C=find(abs(A-B)<5 & A > 50 & B > 50)
    marche bien
    OS : taff > Window 7 32bit - Home > Windows 7 64bit
    Matlab : taff > v2013b - Home > r2009a

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    juin 2019
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : juin 2019
    Messages : 14
    Points : 33
    Points
    33
    Par défaut
    Bonjour,

    un complément pas nécessairement indispensable :
    - pour travailler en valeurs relatives plutôt qu'absolues, il est possible que chercher les valeurs proches en faisant abs(1-A./B) plutôt que abs(A-B).
    - A && B ne fonctionne que si A et B sont des scalaires, et non des vecteurs. Dans ce dernier cas, comme tu l'indiques, il faut utiliser A & B. La différence est la suivant :
    Avec C = A && B, Matlab ne regarde l'état logique de B que si celui de A vaut 1 (en effet, si A vaut 0, il est inutile de regarder l'état de B puisque C vaudra de toutes façon 0.
    Avec C = A & B, Matlab regarde systématiquement l'état logique de B, indépendamment de celui de A.
    - attention à l'ordre des opérateur : le "&" est prioritaire sur le "ou" (de même que la multiplication est prioritaire sur l'addition). Ainsi : A | B & C = A | (B & C). cela aurait empéché de fonction ton exemple " find( (A<B+5) || (A<B-5) && (A>50) && (B>50) )" comme tu l'entendais.

Discussions similaires

  1. [Débutant] Valeurs exclusives entre deux vecteurs
    Par Bubulle31 dans le forum MATLAB
    Réponses: 1
    Dernier message: 07/07/2011, 13h40
  2. [AC-2003] Trouver valeur proche
    Par Souri84 dans le forum Requêtes et SQL.
    Réponses: 15
    Dernier message: 09/11/2009, 15h59
  3. trouver valeur la plus proche dans une colonne
    Par niepoc dans le forum Général Python
    Réponses: 10
    Dernier message: 05/06/2009, 15h02
  4. Affectation de valeurs entre deux vecteurs
    Par demcoul dans le forum Débuter
    Réponses: 3
    Dernier message: 16/10/2008, 22h44
  5. Trouver les valeurs uniques d'un vecteur
    Par Ptinéwik dans le forum MATLAB
    Réponses: 3
    Dernier message: 21/01/2008, 16h14

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