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 :

Problème pour effacer une variable [Débutant]


Sujet :

MATLAB

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2014
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Problème pour effacer une variable
    Bonjour a tous!


    J'ai voulu programmer un programme, qui me donne pour un nombre de points donnés, les maximums locaux de ces points.
    J'ai donc réussi à effectuer cette partie grâce à la commande findpeaks.

    Findpeaks me donne uniquement la position des points, dans un vecteur colonne.

    Mon problème se situe après, j'ai voulu, créer un vecteur qui contient des 1 a la position des maximums locaux et des 0, pour les autres points.
    J'ai pratiquement réussi à trouver le bon code, mais dans une boucle for je suis obligé de faire appel a une variable a et de l'effacer à la fin de cette boucle.
    Mais je n'arrive pas à l'effacer.
    Voici le code que j'ai utilisé:

    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
     
    [pks,locs]=findpeaks([1;2;3;4;5;4;3;2])
     
    n6=length([0;0;0;0;0;1;2;1;4;3;6;4])
     
    y=zeros(n6,1);
     
    for i=1:n6
        a==locs(i,1)
        if i==a
     
            y(i,1)==1 
     
     
        elseif y(i,1)==0
     
        end
        clear a
    end
    Voilà, je sais pas si j'ai été très clair.
    En tout cas merci, si vous avez pris la peine de lire mon message.

  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 : 53 166
    Points
    53 166
    Par défaut
    Attention à ne pas confondre le symbole d'affection « = » avec celui du test d'égalité « == »

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    for i = 1:n6
    
        if i==locs(i,1)
            
            y(i,1) = 1;
            
        end
    
    end
    Le elseif ne sert à rien dans ce cas puisque tu définis initialement y comme un vecteur contenant des zéros.

    Pour le reste, je ne suis pas sûr d'avoir bien compris ce que tu cherches à faire…
    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
    Futur Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2014
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Merci pour ta réponse, enfaite je m'étais juste trompé dans la boucle de mon code.
    J'envoie le code corrigé si sa peut servir à quelqu'un:
    Il permet de trouver la localisation des maximums d'un vecteur,(genre 2 ème position ect...), pusi de créer un nouveau vecteur , qui a chaque position d'un pic de mettre un 1.
    Cette fonction m'est utile, pour traiter plusieurs variables au niveau de ces pics.

    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
    clear all,
    close all,
    clc,
     
    x=[1;2;3;4;5;4;3;2;4;5;7;4],
     
     
    [pks,locs]=findpeaks(x) % permet de trouver les pics de la fonction x
     % locs me donne la position
     
     
    n6=length(x)
    n7=length(locs)
    y=zeros(n6,1);
     
     
    for i=1:n6
     
      for j=1:n7
     
     
        if i==locs(j,1)
     
            y(i,1)=1 
     
     
        elseif y(i,1)==0
     
        end   
        end
     
    end

  4. #4
    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 166
    Points
    53 166
    Par défaut
    Ton code s'écrit simplement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    x = [1;2;3;4;5;4;3;2;4;5;7;4],
     
    [pks,locs] = findpeaks(x);
     
    y = zeros(numel(x), 1);
     
    y(locs) = 1;
    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)

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

Discussions similaires

  1. Problème pour modifier une variable globale
    Par supertom dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 6
    Dernier message: 07/06/2007, 18h00
  2. Réponses: 17
    Dernier message: 01/06/2007, 08h16
  3. Problème pour inclure une variable à un objet
    Par yoyo29 dans le forum Tkinter
    Réponses: 2
    Dernier message: 04/05/2007, 13h01
  4. Réponses: 2
    Dernier message: 14/04/2006, 18h40
  5. Probléme pour insérer une variable dans un champs
    Par BOUTRAIS dans le forum Access
    Réponses: 2
    Dernier message: 11/04/2006, 22h45

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