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 :

Elimination de valeurs inferieures à un seuil dans une matrice


Sujet :

MATLAB

  1. #1
    Membre habitué Avatar de larimoise
    Inscrit en
    Octobre 2006
    Messages
    220
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 220
    Points : 197
    Points
    197
    Par défaut Elimination de valeurs inferieures à un seuil dans une matrice
    Bonjour,

    Comme toujours j'ai des difficultés à simplifier une portion de code, il s'agit d'éliminer les valeurs inférieurs à un certain seuil et de compter les valeurs non nulles de chaque ligne de la matrice.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    q(l)=0;
         for i=1:l-D,
             seuil=max(d(i,:))*0.1;
                 for j=2:c-1,
                   if (d(i,j)<seuil) 
                        psg(i,j)=0;
                   end
                 if psg(i,j)~=0 q(i)=q(i)+1; % vecteur q contient le nbre de pts singu par lig
                 end
               end
         end
    Merci d'avance
    MATLAB Version 7.13.0.564 (R2011b)
    Microsoft Visual studio 2010
    LabView 2013 service pack1

  2. #2
    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 : 52 882
    Points
    52 882
    Par défaut
    Ce genre de problème se résoud plus facilement avec un petit exemple.

    Au cas où, essaie ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    M=rand(7)
     
    idx=M<0.4
     
    M(idx)=0
     
    sum(M~=0,2)
    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)

  3. #3
    Membre habitué Avatar de larimoise
    Inscrit en
    Octobre 2006
    Messages
    220
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 220
    Points : 197
    Points
    197
    Par défaut
    Merci Dumatlab pour ta réponse, j'ai modifié mon code comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    for i=1:l,
             seuil=max(d(i,:))*0.1;
             psg(d(i,:)<seuil)=0;
             q(i)=sum(psg(i,:)~=0);
    end
    A++
    MATLAB Version 7.13.0.564 (R2011b)
    Microsoft Visual studio 2010
    LabView 2013 service pack1

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

Discussions similaires

  1. Déterminer la Valeur la plus grande dans une table
    Par arnaud_verlaine dans le forum Langage SQL
    Réponses: 9
    Dernier message: 22/08/2014, 23h35
  2. Réponses: 13
    Dernier message: 03/07/2009, 15h08
  3. Réponses: 3
    Dernier message: 17/12/2008, 11h49
  4. Réponses: 7
    Dernier message: 18/05/2005, 15h09
  5. Changement valeur d'un champ dans une requête
    Par Mimile28 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 07/04/2005, 14h28

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