Numero di massimi
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.
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
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.
Usa la funzione sort, e poi taglia la matrice finale.
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
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
Ma... Guardare la documentazione??
C'è anche una chiamata che restituisce gli indici!

C'è anche una chiamata che restituisce gli indici!
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
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