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

Téléchargez Discussion :

Taille et nombre d'éléments non zéros dans un vecteur


Sujet :

Téléchargez

  1. #1
    Membre chevronné
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Points : 1 884
    Points
    1 884
    Par défaut Taille et nombre d'éléments non zéros dans un vecteur
    Bonjour,

    Je vous propose un nouvel élément à utiliser : Taille et nombre d'éléments non zéros dans un vecteur

    Voici un code MATLAB qui permet de calculer la taille et le nombre d'éléments différents de zéros dans un vecteur.

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >> a  = [1 0 0 0 1 1 1 1 1 1 0 1 0 1 1 ] ;
    Taille des éléments différents de zéros est : 1 6 1 2
    Leur nombre = 4
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    function [snz, nbnz] = nonzeros2(vin)
    % Description
    % Fonction permettant de retourner le nombre d'éléments différents de zéros
    %
    % vin : vecteur d'entrée
    % snz : taille des éléments différents de zéros
    % nbnz : nombre d'éléments différents de zéros
    %
    % Usage :
    % >> a = [1 0 0 0 1 1 1 1 1 1 0 1 0 1 1 ] ;
    % >> sz = nonzeros2(a)
    %
    % sz =
    %     1     6     1     2
    %
    % >> a = [1 0 0 0 1 1 1 1 1 1 0 1 0 1 1 ] ;
    % >> [sz nb] = nonzeros2(a)
    %
    % sz =
    % 
    %      1     6     1     2
    % 
    % nb =
    % 
    %      4
    %
     
    if nargin > 1 || nargin <= 0
        error('Bad input. see help nonzeros2 for details.');
    end
     
    snz = diff(find(~[0 vin 0]))-1 ;
    snz = snz(snz~=0) ;
    nbnz = numel(snz) ;
    Les règles Les cours La fonction rechercher

    N'oubliez pas de mettre en et de voter.

    La terre n'est pas un héritage de nos parents, mais un emprunt que nous faisons à nos enfants. La protection de notre environnement est la responsabilité de tous. Ne reculez plus devant l'urgence, agissez !

  2. #2
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2013
    Messages : 12
    Points : 8
    Points
    8
    Par défaut inverse
    Bonjour, j'aimerais savoir combien j'ai de zéros entre mes valeurs ... c'est possible de faire le même genre de programme ?
    merci.

  3. #3
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 53 165
    Points
    53 165
    Par défaut
    Il suffit d'utiliser l'opérateur logique ~ sur le vecteur en entrée :

    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
    19
    20
    21
    22
    >> a  = [1 0 0 0 5 4 1 1 2 2 0 8 0 1 3 ]
    >> [snz, nbnz] = nonzeros2(a)
     
    snz =
     
         1     6     1     2
     
     
    nbnz =
     
         4
     
    >> [snz, nbnz] = nonzeros2(~a)
     
    snz =
     
         3     1     1
     
     
    nbnz =
     
         3
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  4. #4
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2013
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    Merci.

Discussions similaires

  1. Compter le nombre d'éléments non nuls d'un vecteur
    Par thtghgh dans le forum MATLAB
    Réponses: 3
    Dernier message: 27/05/2009, 10h21
  2. Réponses: 2
    Dernier message: 04/05/2007, 10h55
  3. bdd : erreur 3265 élément non trouvé dans cette collection
    Par morgan47 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 10/07/2006, 09h52
  4. Erreur de "Élément non trouvé dans cette collection"
    Par charleshbo dans le forum Access
    Réponses: 4
    Dernier message: 04/05/2006, 18h42

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