Max fonction sur matlab
mel
-
mel -
mel -
Bonjour,
j'ai besoin d'aide s'il vous plait, j'ai une courbe sur matlab et j'ai besoin de retrouver le premier max qu'elle atteint.
par exeple si elle a les valeurs suivantes: [1 1 2 3 2 1 5 6] moi j'aurais besoin de récuperer le 3.
je n'ai aucune idée de comment m'y prendre, je suis novice sur matlab, est ce que j'aurais besoin de deriver la fct pr retrouver les max???
j'ai besoin d'aide s'il vous plait, j'ai une courbe sur matlab et j'ai besoin de retrouver le premier max qu'elle atteint.
par exeple si elle a les valeurs suivantes: [1 1 2 3 2 1 5 6] moi j'aurais besoin de récuperer le 3.
je n'ai aucune idée de comment m'y prendre, je suis novice sur matlab, est ce que j'aurais besoin de deriver la fct pr retrouver les max???
A voir également:
- Max fonction sur matlab
- Fonction si et - Guide
- Driver max - Télécharger - Pilotes & Matériel
- I14 pro max - Accueil - Guide téléphones
- Max ou netflix - Accueil - Streaming
- Fonction miroir - Guide
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
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
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