Numero di massimi

peppepegasus
ciao,

ho un problema con matlab: data una matrice A di dimensione 50x30 per esempio, devo estrarre per ogni riga i primi 10 valori più grandi e i relativi indici. Per estrarre i massimi e gli indici ho letto che si può usare:
[Y, I] = max(A)
In Y verrà restituito un vettore composto dei massimi elementi di ciascuna colonna, in I il valore degli indici in ciascuna colonna in corrispondenza dei quali si ha il massimo. A me interessa prenderne solo un certo numero, 10.
Si potrebbe tagliare sia Y sia I però non mi piace come soluzione.
ce ne sono altre più dirette?
grazie.
ciao.

Risposte
Raptorista1
Se vuoi i dieci elementi più grandi di ciascuna riga, quell'approccio non ti porterà lontano.
Usa la funzione sort, e poi taglia la matrice finale.

peppepegasus
ciao,

sort, se non ricordo male, ordina in maniera crescente gli elementi della matrice e a me serve tenere traccia degli indici dei primi 10 elementi più grandi!
ciao

Raptorista1
Ma... Guardare la documentazione?? :evil:
C'è anche una chiamata che restituisce gli indici!

peppepegasus
ciao,

si scusa ho guardato subito dopo aver inviato la risposta la documentazione di sort e ho visto che si possono ottenere gli indici con:
[B, IX] = sort(A, 2)
ciao

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.