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

Algorithmes et structures de données Discussion :

Elements similaires dans tableaux


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 453
    Par défaut Elements similaires dans tableaux
    Bonjour,

    J'ai plusieurs tableaux disons:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    t1 = [0 1 1 0 1 1];
    t2 = [1 0 1 1 0 0];
    t3 = [1 1 0 1 0 1];
    Je voudrais savoir combien d'éléments de t1 sont =1 quand t2 ET t3 sont à 0.

    Je pensais faire comme suite:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    length(find(t(1,:)==1 & t(2:3,:)==0))
    Mais cela ne marche pas.. on ne peut pas faire t(2:3,==0...
    Est-ce que vous auriez un conseil pour faire ceci sans avoir à passer par des boucles longues 'for' ?

    Merci.

  2. #2
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2012
    Messages : 82
    Par défaut
    Je peux te proposer une seule boucle après de toute manière pour comparer des tableaux tu es forcé de les parcourir... (s'il existe une autre méthode je suis preneur).

    Tu prends une (longue...) boucle for dedans tu regardes si (t1 == 1) si c'est le cas tu vérifies les valeurs de t2 et t3. Cela te permet de n'avoir qu'une seule boucle.

    Bon je dois l'admettre je suis pas super calé la dessus non plus, il existe peut être une techno qui te permet de le faire et dans ce cas, désolé pour ce poste.

  3. #3
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par soeursourire Voir le message
    Est-ce que vous auriez un conseil pour faire ceci sans avoir à passer par des boucles longues 'for' ?
    Pour moi le plus logique et simple est une boucle, et elle est assez optimale :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    total = 0 
     
    pour i = 0 a i < N
       si t2 = 0
           si t3 = 0
               si t1 = 1
                   total = total + 1
               fin si
           fin si
       fin si
    fin pour
    qu'on peut résumer à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    total = 0 
     
    pour i = 0 a i < N
         si t2 = 0 ET t3 = 0 ET t1 = 1
            total = total + 1
         fin si
    fin pour
    à moins que ton outil ait des opérations booléenes sur des tableaux, auquel cas tu peux faire : NOT (t2 ET T3) AND T1

  4. #4
    Membre Expert
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Par défaut
    Citation Envoyé par souviron34 Voir le message
    à moins que ton outil ait des opérations booléenes sur des tableaux, auquel cas tu peux faire : NOT (t2 ET T3) AND T1
    Petite erreur d'inatention : [(NOT t2) AND (NOT t3)] AND t1 = t1 AND NOT (t2 OR t3)

  5. #5
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut


    Merci

  6. #6
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Par défaut
    Bonjour,
    Citation Envoyé par soeursourire Voir le message
    Je pensais faire comme suite:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    length(find(t(1,:)==1 & t(2:3,:)==0))
    Mais cela ne marche pas.. on ne peut pas faire t(2:3,==0...
    Est-ce que vous auriez un conseil pour faire ceci sans avoir à passer par des boucles longues 'for' ?
    Tu cherches bien une solution sous matlab? Dans ton exemple tu parles de plusieurs tableaux puis tu vas chercher les lignes d'un autre tableau t...

    Pourquoi ne pas faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    length(find(t1 & ~t2 & ~t3 ))
    ?
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

Discussions similaires

  1. [WD-2003] Contrôles similaires dans tableaux différents
    Par Peps0u dans le forum VBA Word
    Réponses: 5
    Dernier message: 23/04/2009, 18h41
  2. Réponses: 2
    Dernier message: 30/04/2006, 20h22
  3. Réponses: 5
    Dernier message: 24/12/2005, 15h40
  4. Modifier un element parent dans un fct javascript
    Par bslota dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 09/11/2005, 19h02
  5. [Tableaux] Recherche valeur dans tableaux
    Par Kaimann dans le forum Langage
    Réponses: 10
    Dernier message: 21/10/2005, 11h57

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