Bonjour à toutes et à tous,
Je cherche dans l'aide depuis 1 heure une fonction permettant de retourner les indices des 4 plus grandes valeurs d'un vecteur. Je ne trouve pas !
Est-ce que cette fonction existe, ou dois-je la coder?
Merci
Bonjour à toutes et à tous,
Je cherche dans l'aide depuis 1 heure une fonction permettant de retourner les indices des 4 plus grandes valeurs d'un vecteur. Je ne trouve pas !
Est-ce que cette fonction existe, ou dois-je la coder?
Merci
Il te suffit de trier ton vecteur avec la fonction SORT et de ne prendre que les 4 valeurs qui t'intéressent dans le vecteur résultat, non ?
en fait c'est pour récupérer les indices des maximums avant de les avoir triés. Les valeurs ne m'interessent pas.
La fonction sort permet de récupérer l'ordre de permutation :
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 >> V=ceil(100*rand(1,10)) V = 96 24 61 49 90 77 46 2 83 45 >> [sortV,Ordre]=sort(V) sortV = 2 24 45 46 49 61 77 83 90 96 Ordre = 8 2 10 7 4 3 6 9 5 1 >> % Si tu veux les 4 plus grandes valeurs ainsi que leur indies : >> V4max = sortV(end-3:end) V4max = 77 83 90 96 >> IndV4max = Ordre(end-3:end) IndV4max = 6 9 5 1
Merci, Matlab est super puissant.
Aie, j'ai des valeurs qui valent nan et il les place juste apres les valeurs maximums, et ca me pourri mon algo...![]()
Sans aller chercher bien loin : Compter le nombre de valeurs sans prendre en compte les NaN
thanks, cette fois ci j'aurai du terminer ma recherche avant de poster.
Partager