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 :

nombre de répétitions dans un tableau


Sujet :

MATLAB

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

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

    Informations forums :
    Inscription : Juin 2012
    Messages : 25
    Points : 0
    Points
    0
    Par défaut nombre de répétitions dans un tableau
    bonjour;

    j'ai un vecteur binaire de 1 et de 0, les 1 et les 0 se repete de le vecteur d'une manière aléatoire

    par exemple

    V=[1 1 1 0 0 1 1 1 1 1 0 0 0 1 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 0 1 1]

    je veux avoir le nombre de répétition de chaque 1 et 0

    1(3),0(2),1(5),0(3),1(1),0(3),1(3),0(7),1(4),0(1),1(2)

    si c'est possible et merci pour vous

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    640
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 640
    Points : 776
    Points
    776
    Par défaut
    Bonjour,

    Heureusement que les recherches en faq/contribuez permettent souvent de trouver des éléments de réponses...

    http://www.developpez.net/forums/d89...zeros-vecteur/

    ca devrait te mettre sur la piste =)

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

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

    Informations forums :
    Inscription : Juin 2012
    Messages : 25
    Points : 0
    Points
    0
    Par défaut
    Quand j'essaye avec cette ligne

    ??? Error using ==> nonzeros
    Too many output arguments.


    avec sz nbre de 1 dans ce cas là


  4. #4
    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
    Points : 7 614
    Points
    7 614
    Par défaut
    Bonjour,

    La fonction utilisée dans la contribution est la fonction nonzeros2 et non la fonction nonzeros. Il faut que tu copies cette fonction et que tu crées un fichier nonzeros2.m qui contient cette fonction. Ensuite tu pourras l'utiliser et faire :
    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.

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

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

    Informations forums :
    Inscription : Juin 2012
    Messages : 25
    Points : 0
    Points
    0
    Par défaut
    en fait, ce que je veux c'est arrivé à avoir le nombre de 1 et de 0 comme illustré dans mon 1er post

  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
    Points : 7 614
    Points
    7 614
    Par défaut
    As-tu regardé les fonctions utilisées dans la contribution? Elle te permettent de faire ce que tu souhaites, mais ça demande un minimum d'investissement de ta part.

    Si tu n'arrives pas à comprendre ces fonctions qui travaillent sur des vecteurs ou des matrices, tu peux aussi écrire un programme ou tu parcours ton vecteur à l'aide d'une boucle for et tu comptes les 0 et les 1 au fur et à mesure, ce n'est pas très compliqué...
    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.

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

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

    Informations forums :
    Inscription : Juin 2012
    Messages : 25
    Points : 0
    Points
    0
    Par défaut
    comme je suis débutant en algorithmique je me perd facilement
    c'est pour celà que je m'adresse à vous

  8. #8
    Expert confirmé
    Avatar de tug83
    Homme Profil pro
    MATLAB Geek !
    Inscrit en
    Juin 2006
    Messages
    1 781
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : MATLAB Geek !
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 781
    Points : 4 039
    Points
    4 039
    Par défaut
    ce que tu cherches à programmer est connu sous le nom de suite de conway:
    tu trouveras la réponse sur le dernier billet de mon blog :
    http://blog.developpez.com/matlab4geek/
    MATLAB 8.2 (R2013b)

    le blog des MATLAB geeks

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

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

    Informations forums :
    Inscription : Juin 2012
    Messages : 25
    Points : 0
    Points
    0
    Par défaut
    malheureusement je m'y retrouve pas, je suis totalement à l'ouest

  10. #10
    Membre habitué
    Homme Profil pro
    étudiant ingénieur traitement images médicales
    Inscrit en
    Juin 2012
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : étudiant ingénieur traitement images médicales
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2012
    Messages : 74
    Points : 131
    Points
    131
    Par défaut
    Là pour le coup tu ne fais pas d'efforts. Et pourtant tu83 te donne la réponse sur un plateau (très beau code soit dit en passant).

    Pour te prémacher, macher et post macher le travail :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    V=[1 1 1 0 0 1 1 1 1 1 0 0 0 1 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 0 1 1];
    index=find(diff([V,nan]));
    output =reshape([diff([0,index]);V(index)],1,[])
    et le vecteur output est celui que tu cherches.

  11. #11
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

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

    Informations forums :
    Inscription : Juin 2012
    Messages : 25
    Points : 0
    Points
    0
    Par défaut
    quand je tape mon instruction il m'affiche un message d'erreur


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    index=find(diff([SIG,nan]));
    ??? Error using ==> horzcat
    CAT arguments dimensions are not consistent.


    avec mon SIG vecteur 600 éléments

  12. #12

  13. #13
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

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

    Informations forums :
    Inscription : Juin 2012
    Messages : 25
    Points : 0
    Points
    0
    Par défaut
    Je sais que je suis assez nul en algoritmique ... Hélas! Je n'y arrive pas

  14. #14
    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
    essayes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    index=find(diff([SIG;nan]));

  15. #15
    Invité
    Invité(e)
    Par défaut
    Il ne tient qu'à toi de t'améliorer
    Un peu de lecture : Gestion des matrices

  16. #16
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

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

    Informations forums :
    Inscription : Juin 2012
    Messages : 25
    Points : 0
    Points
    0
    Par défaut
    Citation Envoyé par le fab Voir le message
    essayes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    index=find(diff([SIG;nan]));
    avec votre code ça me donne les indices chaque fois qu'il y a passege de 1 à 0 ou le contraire je vais tribuché pour touvé le nombre de répitition à chaque fois
    j'espère y arrivé

  17. #17
    Invité
    Invité(e)
    Par défaut
    Dis-moi que c'est une blague ?
    Le code entier t'a gracieusement été servi sur un plateau depuis déjà vendredi dernier !

  18. #18
    Membre habitué
    Homme Profil pro
    étudiant ingénieur traitement images médicales
    Inscrit en
    Juin 2012
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : étudiant ingénieur traitement images médicales
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2012
    Messages : 74
    Points : 131
    Points
    131
    Par défaut
    Je crois effectivement que c'est une blague!

    Si tu relis mon post précédent, tu verras que le code ne se termine pas à la définition de "index".

    Si tu lis jusqu'au bout, tu verras cette ligne de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    output =reshape([diff([0,index]);V(index)],1,[])
    et c'est dans output que tu as ce que tu souhaites. Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
      Columns 1 through 18
     
         3     1     2     0     5     1     3     0     1     1     3     0     3     1     7     0     3     1
     
      Columns 19 through 22
     
         1     0     2     1
    tu peux le lire comme suit :

    il y a trois 1, puis deux 0, puis cinq 1, etc.

    Je pense que t'apporter la solution sur un plateau n'est pas suffisant, il faut aussi de l'intégrer... Essaie de faire quelques efforts, quand tu demandes de l'aide.

  19. #19
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

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

    Informations forums :
    Inscription : Juin 2012
    Messages : 25
    Points : 0
    Points
    0
    Par défaut
    je sais que je suis assez nul en programmation, c'est pas du tout mon domaine je suis un bleu je l'avoue. je m'y retouve pas

    quand il s'agit de matlab je suis totalement à l'ouest je vous demande de m'excuser.
    je vais sur lien que vous m'avez donné mais je vous assure que je ne comprend rien.

    en tapant la seconde ligne du code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    output = reshape([diff([0,index]);SIG],1,[])
    le résultat est le suivant

    ??? Error using ==> horzcat
    CAT arguments dimensions are not consistent.


    Merci de votre aide

  20. #20
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

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

    Informations forums :
    Inscription : Juin 2012
    Messages : 25
    Points : 0
    Points
    0
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    output = reshape([diff([0;index]);SIG],1,[])
    Normalement j'ai trouvé il fallait mettre ; au lieu de ,

    Merci beaucoup à tous et je suis désolé

Discussions similaires

  1. nombre plus present dans un tableau
    Par Hachmoon dans le forum C
    Réponses: 8
    Dernier message: 21/11/2006, 16h21
  2. [VB6] Nombre d'element dans un tableau ?
    Par belfaigore dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 20/09/2006, 22h23
  3. [VBA-E] connaitre le nombre de ligne dans un tableau excel
    Par bigbarbe dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 13/04/2006, 10h03
  4. Compter le nombre d'élément dans un tableau
    Par cryptorchild dans le forum Langage
    Réponses: 6
    Dernier message: 08/07/2005, 13h01
  5. nombre de répétitions dans chaînes de caractères
    Par jocarina dans le forum Langage SQL
    Réponses: 10
    Dernier message: 20/06/2005, 13h07

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