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 :

Les ième valeurs communes entre 2 vecteurs


Sujet :

MATLAB

  1. #1
    Membre du Club
    Homme Profil pro
    Architecte réseau
    Inscrit en
    Juillet 2012
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Danemark

    Informations professionnelles :
    Activité : Architecte réseau
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2012
    Messages : 45
    Points : 44
    Points
    44
    Par défaut Les ième valeurs communes entre 2 vecteurs
    Salut, je suis entrain d'écrire un algorithme très utilisé dans le domaine de compression, et comme je suis débutant dans MATLAB j'arrive pas à résoudre ceci:
    supposant qu'on a deux vecteurs:
    et un autre vecteur
    je veux extraire et enregistrer les ièmes valeurs communes entre seq et symb
    par exemple:
    seq(1)= 0    = le 3ème élément dans symb ==> t=3
    seq(2)= -1    = le 2ème élément dans symb ==> t=2
    seq(3)= 0      = le 3ème élément dans symb ==> t=3
    seq(4)= 2      = le 5ème élément dans symb ==> t=5
    résultat final doit être un vecteur t tel que :
    Merci bien

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    Intéresse-toi à la deuxième sortie.

  3. #3
    Membre du Club
    Homme Profil pro
    Architecte réseau
    Inscrit en
    Juillet 2012
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Danemark

    Informations professionnelles :
    Activité : Architecte réseau
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2012
    Messages : 45
    Points : 44
    Points
    44
    Par défaut
    c'est pas faisable avec doc ismember, elle retourne [1 1 1 1] puisque tous les valeurs de seq sont présents dans symb

    seq = sequence parmi tous les symboles symb

    j'ai essayé avec ça:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    symb[-2 -1 0 1 2];
    seq=[0 -1 0 2];
    for m=1:length(seq)
        for j=1:length(symb)
     
        if seq(m)==symb(j)
            t=j      
     
          end          
        end 
    end
    j'ai comme résultat:

    mais je veux le résultat en un seul vecteur

  4. #4
    Invité
    Invité(e)
    Par défaut
    J'ai bien précisé
    Citation Envoyé par Winjerome Voir le message
    Intéresse-toi à la deuxième sortie.
    Citation Envoyé par dzdesperado
    mais je veux le résultat en un seul vecteur
    Et bien rempli un tableau au lieu de simplement remplacer le contenu de t.
    Dans ce petit exemple, tu n'en n'auras pas vraiment besoin, mais plus tard, je te conseille d'appliquer ceci.
    Tu peux aussi utiliser doc find dans ton code.
    Dernière modification par Invité ; 15/01/2013 à 00h23.

  5. #5
    Membre habitué Avatar de Mat32
    Inscrit en
    Août 2009
    Messages
    243
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 243
    Points : 137
    Points
    137
    Par défaut
    Voilà j'ai modifié ton code pour obtenir un vecteur ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    symb=[-2 -1 0 1 2];
    seq=[0 -1 0 2];
    k=1;
    t=zeros(1,length(seq));
    for m=1:length(seq)
            for j=1:length(symb)
                if seq(m)==symb(j)
                t(k)=j;
                k=k+1; 
            end          
        end 
    end
     
    while t(length(t))==0 
       t=t(1:length(t)-1);
    end
     
    t
    ?????
    Devise Shadoks : Il vaut mieux pomper d'arrache pied même s'il ne se passe rien que de risquer qu'il se passe quelque chose de pire en ne pompant pas

Discussions similaires

  1. Réponses: 0
    Dernier message: 05/06/2015, 02h08
  2. Trouver les éléments non communs entre deux matrices
    Par Décembre dans le forum MATLAB
    Réponses: 1
    Dernier message: 02/10/2011, 18h31
  3. [Débutant] Valeurs exclusives entre deux vecteurs
    Par Bubulle31 dans le forum MATLAB
    Réponses: 1
    Dernier message: 07/07/2011, 13h40
  4. trouver les éléments communs entre deux vecteurs
    Par Décembre dans le forum MATLAB
    Réponses: 5
    Dernier message: 21/07/2010, 09h38
  5. [visual C++/Matlab] communication entre les deux
    Par Bilouzzz dans le forum MFC
    Réponses: 2
    Dernier message: 15/10/2005, 05h05

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