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 valeur dans un vecteur [Débutant]


Sujet :

MATLAB

  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2013
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mars 2013
    Messages : 21
    Points : 8
    Points
    8
    Par défaut recherche de valeur dans un vecteur
    Bonjour,

    je cherche à trouver des valeurs dans un vecteur
    je m'explique :
    j'ai deux vecteurs de valeurs temporelles de tailles différentes t1 et t2
    je souhaite trouver pour chaque valeur de t2 une valeur de t1 la plus proche possible.
    pour obtenir un troisième vecteur de même taille que t2.

    Pouvez vous m'aider,

    j'ai essayé plusieurs méthodes mais comme je cherche à trouver des valeurs approximatives je suis coincé.

    Merci d'avance.

  2. #2
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    1 882
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 882
    Points : 3 432
    Points
    3 432
    Par défaut
    Salut

    essayes quelque chose comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    % initialisation du nouveau vecteur de même taille que t2
    % avec des valeurs NaN
    t3 = nan(size(t2));
     
    % pour chaque valeur de t2
    for ii=1:numel(t2)
       % recherche de l'index dans t1 de la valeur de t1 la plus proche de t2(ii)
       [~,idx] = min(abs(t1-t2(ii)));
     
       % stockage dans t3 de la valeur trouvée
       t3(ii) = t1(idx);
    end
    Fabien

  3. #3
    Futur Membre du Club
    Inscrit en
    Mars 2013
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mars 2013
    Messages : 21
    Points : 8
    Points
    8
    Par défaut
    Ca m'a l'air de marcher même si je ne comprend pas vraiment le code que tu me propose.
    Pourrais tu me commenter ton code ?
    Merci d'avance pour ton aide.

  4. #4
    Futur Membre du Club
    Inscrit en
    Mars 2013
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mars 2013
    Messages : 21
    Points : 8
    Points
    8
    Par défaut
    J'ai un autre probleme qui découle ensuite.
    J'ai d'autres vecteurs (vitesse, et autre ) pour chaque valeur de t1 comment puis-je faire pour retrouver celles qui correspondent à celles de t3 ?

  5. #5
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    1 882
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 882
    Points : 3 432
    Points
    3 432
    Par défaut
    avec une interpolation linéaire par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    v3 = interp1(t1,v1,t3,'linear','extrap');

  6. #6
    Futur Membre du Club
    Inscrit en
    Mars 2013
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mars 2013
    Messages : 21
    Points : 8
    Points
    8
    Par défaut
    j'ai procédé comme ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    t3 = nan(size(temps2));
    for ii=1:numel(temps2)
       [~,idx] = min(abs(temps1-temps2(ii)));
       t3(ii) = temps1(idx);
       rpm2(ii)=rpm(idx); 
     
       v2(ii)=v(idx);
    end
    cela te semble t'il correct ?

  7. #7
    Futur Membre du Club
    Inscrit en
    Mars 2013
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mars 2013
    Messages : 21
    Points : 8
    Points
    8
    Par défaut
    Mon problème est résolu. Merci le fab

  8. #8
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    1 882
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 882
    Points : 3 432
    Points
    3 432
    Par défaut
    ta solution n'est pas correcte
    mais si tu as rajouté les interp1, alors OK

    un petit clic sur le bouton alors

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

Discussions similaires

  1. Recherche de valeur dans un vecteur
    Par Matlanoob dans le forum MATLAB
    Réponses: 3
    Dernier message: 24/06/2015, 14h59
  2. [Débutant] rechercher une valeur dans un vecteur de rang 2
    Par anthodub dans le forum MATLAB
    Réponses: 3
    Dernier message: 12/01/2012, 17h11
  3. [Débutant] Rechercher la position d'une valeur dans un vecteur
    Par philouxy dans le forum MATLAB
    Réponses: 2
    Dernier message: 01/03/2011, 15h56
  4. recherche d'une valeur dans un vecteur
    Par chronos21 dans le forum MATLAB
    Réponses: 4
    Dernier message: 28/10/2009, 22h08
  5. Insérer une valeur dans un vecteur
    Par jalilv6 dans le forum Langage
    Réponses: 2
    Dernier message: 07/04/2006, 07h04

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