Trovare tutti gli elementi della NaN all'interno di un array
Domanda
C'è un comando in MATLAB che mi permette di trovare tutte le NaN (Not-a-Number) elementi all'interno di un array?
Soluzione 3
Ho appena trovato la risposta:
k=find(isnan(yourarray))
k sarà un elenco di elementi indicies NaN.
Altri suggerimenti
Come già detto, la risposta migliore è isNaN () (anche se uno di cippato meta-risposta). Un esempio più completo di come usarlo con indicizzazione logica:
>> a = [1 nan;nan 2]
a =
1 NaN
NaN 2
>> %replace nan's with 0's
>> a(isnan(a))=0
a =
1 0
0 2
isNaN (a) restituisce una matrice logica, una serie di vero e falso le stesse dimensioni di una, con "vero" ogni luogo c'è un nan, che può essere utilizzato per indice in una.
Mentre isnan è la soluzione corretta, mi limiterò a sottolineare il modo di averlo trovato. Utilizzare lookfor. Quando non si conosce il nome di una funzione in MATLAB, provare lookfor.
lookfor nan
sarà presto dare i nomi di alcune funzioni che lavorano con NaNs, oltre a dare la prima linea dei loro blocchi di aiuto. Qui, sarebbe elencati (tra le altre cose)
isNaN Vero per Non-a-numero.
che è chiaramente la funzione che si desidera utilizzare.