A voir également:
- Max fonction sur matlab
- Réinitialiser kidicom max ✓ - Forum Tablette tactile
- Max maillot avis ✓ - Forum Consommation et internet
- Fonction si et - Guide
- Edraw max - Télécharger - Présentation
- Fonction max en c - Forum C
8 réponses
J'ai exactement le même probléme ^^. Sauf que pour moi c'est une courbe d'impédance en fonction des fréquences. Le but étant de récupérer le premier pic de résonnance avec sa fréquence associé.
(en C++ ça m'aurais pris deux minutes...)
(en C++ ça m'aurais pris deux minutes...)
ben voilà la solution que j'ai fini par trouver
s etant ma matrice de depart
sauf qu'il faut definir un seuil au dessous du quel un pic n'est pas considéré comme tel; ici mon seuil est 1 d'ou le s>1 à la fin, apparemment on n'a pas le choix, quelque soit la methode il faut un seuil sinon il y aurait de tous petits pics à peine visibles sur la figure qu'on detecterait
s etant ma matrice de depart
sa=sign(diff([-inf s]));% recherche de ts les maximums sb=sign(diff([-inf s(end:-1:1)])); sb=sb(end:-1:1); idx=(sa==1 & sb==1 & s>1);% idx=1 pr les max
sauf qu'il faut definir un seuil au dessous du quel un pic n'est pas considéré comme tel; ici mon seuil est 1 d'ou le s>1 à la fin, apparemment on n'a pas le choix, quelque soit la methode il faut un seuil sinon il y aurait de tous petits pics à peine visibles sur la figure qu'on detecterait
Char Snipeur
Messages postés
9688
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
2 octobre 2020
1 328
6 janv. 2011 à 10:02
6 janv. 2011 à 10:02
super compliqué ! pourquoi ne pas simplement faire un for et retenir la valeur max ?
M=s(1);
for i=2:length(s);
if M>s(i)
idx=i-1;
break;
else
M=s(i);
end
end
c'est parce qu'avec la methode que tu proposes on retrouve le max global et non pas le 1 er pic rencontré qui est un max local,
c'est à dire dans l'exemple de la matrice que j'ai donné ta methode me retourne le 6 alors que la mienne retourne le 3
c'est à dire dans l'exemple de la matrice que j'ai donné ta methode me retourne le 6 alors que la mienne retourne le 3
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Char Snipeur
Messages postés
9688
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
2 octobre 2020
1 328
7 janv. 2011 à 09:17
7 janv. 2011 à 09:17
non, grace au break, je m'arrete au premier max
ben non tu t'arrete à la première valeur superieure à s(1)
ce qui correspond à la valeur 2 ds l'exemple et non pas le 3
ce qui correspond à la valeur 2 ds l'exemple et non pas le 3
Char Snipeur
Messages postés
9688
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
2 octobre 2020
1 328
7 janv. 2011 à 16:50
7 janv. 2011 à 16:50
Non non !
tu m'a mis le doute donc je viens de tester, ça retourne bien 3 !
tu m'a mis le doute donc je viens de tester, ça retourne bien 3 !