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 :

compter le nombre d'alternance par plage


Sujet :

MATLAB

  1. #1
    Membre à l'essai
    Femme Profil pro
    technicien
    Inscrit en
    Mars 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : technicien
    Secteur : Alimentation

    Informations forums :
    Inscription : Mars 2014
    Messages : 17
    Points : 15
    Points
    15
    Par défaut compter le nombre d'alternance par plage
    Bonjour à tous

    Je me permet de vous solliciter pour un calcul qui à mon avis avis vous prendra que quelques minutes
    Je débute completement en matlab je sais juste charger mes variables et faire un graph de base pour tout dire.

    Voila j'ai une variable don't j'aimerais connaitre le nombre d'oscilation positive don't le deltat d'oscilation est supérieur à 2000.

    Nom : Capture2.PNG
Affichages : 291
Taille : 43,3 Ko

    exepmle dans mon image resultat attendu
    6 amplitudes
    et après si possible les classer par tranche

    1 à 3300
    2 à 3250
    3 à 3200

    Merci beaucoup si vous pouvez m'aider

  2. #2
    Membre éprouvé
    Avatar de soft001
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2008
    Messages
    409
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 409
    Points : 1 146
    Points
    1 146
    Par défaut
    Tu peux utiliser la fonction findpeaks + une condition sur l'amplitude.

    Citation Envoyé par auverland Voir le message
    et après si possible les classer par tranche

    1 à 3300
    2 à 3250
    3 à 3200
    J'ai pas compris !!
    Si tu trouves ma réponse utile, n'oublies pas de voter pour ce me message

  3. #3
    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,

    cela semble être un travail pour la fonction findpeaks (nécessite la toolbox signal processing):
    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.

  4. #4
    Membre à l'essai
    Femme Profil pro
    technicien
    Inscrit en
    Mars 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : technicien
    Secteur : Alimentation

    Informations forums :
    Inscription : Mars 2014
    Messages : 17
    Points : 15
    Points
    15
    Par défaut
    Citation Envoyé par soft001 Voir le message
    Tu peux utiliser la fonction findpeaks + une condition sur l'amplitude.


    J'ai pas compris !!
    En recherchant j'ai trouvé : findpeaks(select,Fs,'MinPeakProminence',2000)
    Je met ou cette commande et je recupère mon résultat ou

    Je voulais aussi si c'est possible le nombre de pics dans chaque plages (entre 2000 et 3000 et 3000 et 4000)
    Merci d'avance



    Nom : Capture5.PNG
Affichages : 236
Taille : 57,6 Ko

  5. #5
    Membre éprouvé
    Avatar de soft001
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2008
    Messages
    409
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 409
    Points : 1 146
    Points
    1 146
    Par défaut
    Tu peux essayer ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    load sunspot.dat
     
    year = sunspot(:,1);
    avSpots = sunspot(:,2)*20; % Ton signal, je pense que c'est toto dans ton cas
    plot(year,avSpots);
    [pks,locs]=findpeaks(avSpots,'MinPeakProminence',2000)
    hold on
    plot(year(locs),pks,'ro')
     
    IndexPeakparplage(1)=numel(find(locs>0& locs<100)); % nombre de pics entre 0 et 100
    IndexPeakparplage(2)=numel(find(locs>100& locs<1000)); % nombre de pics entre 0 et 100
    Si tu trouves ma réponse utile, n'oublies pas de voter pour ce me message

  6. #6
    Membre à l'essai
    Femme Profil pro
    technicien
    Inscrit en
    Mars 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : technicien
    Secteur : Alimentation

    Informations forums :
    Inscription : Mars 2014
    Messages : 17
    Points : 15
    Points
    15
    Par défaut
    Citation Envoyé par soft001 Voir le message
    Tu peux essayer ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    load sunspot.dat
     
    year = sunspot(:,1);
    avSpots = sunspot(:,2)*20; % Ton signal, je pense que c'est toto dans ton cas
    plot(year,avSpots);
    [pks,locs]=findpeaks(avSpots,'MinPeakProminence',2000)
    hold on
    plot(year(locs),pks,'ro')
     
    IndexPeakparplage(1)=numel(find(locs>0& locs<100)); % nombre de pics entre 0 et 100
    IndexPeakparplage(2)=numel(find(locs>100& locs<1000)); % nombre de pics entre 0 et 100
    Bonjour,

    Lorsque j'essais le code j'ai le message d'erreur (matlab R2013b) :
    Error using uddpvparse (line 103) The name 'MinPeakProminence' is not an accessible property for an instance of class 'findpeaks'. Error in findpeaks>parse_inputs (line 84) hopts = uddpvparse('dspopts.findpeaks',varargin{:}); Error in findpeaks (line 59) [X,Ph,Pd,Th,Np,Str,infIdx] = parse_inputs(X,varargin{:});
    Y a t il une option à activer ?

    Si je comprend le code, [pks,locs]=findpeaks(avSpots,'MinPeakProminence',2000)
    celui-ci me donnera tout les pick supérieur à 2000 (en liste dans la fenetre de commande)
    est-il possible de récupérer la liste sur une variable ?
    Autre point, je n'ai qu'une variable 'toto' qui à comme valeur 1664617x1 double

    Merci d'avance du temps que vous m'accordez

  7. #7
    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,

    les noms des options dans la R2013b sont légèrement différents, il suffit de lire la documentation pour corriger le nom.

    Les variables pks et locs contiendront les valeurs des pics et leurs indices (encore une fois, tout cela est expliqué dans la documentation de la fonction).
    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. Shell script pour compter le nombre de fichiers par extension
    Par andress33 dans le forum Shell et commandes GNU
    Réponses: 16
    Dernier message: 30/03/2015, 01h26
  2. Compter le nombre de visite par jour
    Par Are-no dans le forum Langage SQL
    Réponses: 2
    Dernier message: 19/02/2008, 16h37
  3. Réponses: 3
    Dernier message: 08/09/2006, 12h35
  4. [Access] Compter le nombre d'arrivée par année
    Par tatayoyo dans le forum Langage SQL
    Réponses: 6
    Dernier message: 23/08/2006, 12h08
  5. Compter le nombre de page par regroupement
    Par bondyfalat dans le forum Access
    Réponses: 2
    Dernier message: 01/03/2006, 17h08

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