Mi è venuta l'idea di sostituire tutti i NaN nella mia matrice eseguendo il ciclo di ognuno di essi e utilizzando isnan. Tuttavia, ho il sospetto che questo farà funzionare il mio codice più lentamente di quanto dovrebbe. Qualcuno può fornire un suggerimento migliore?Sostituire tutti i NaN con zeri senza eseguire il ciclo attraverso l'intera matrice?
8
A
risposta
23
Diciamo che la vostra matrice è:
A =
NaN 1 6
3 5 NaN
4 NaN 2
È possibile trovare il NaN
elementi e li sostituisce con zero usando isnan
come questo:
A(isnan(A)) = 0;
Allora la vostra uscita saranno:
A =
0 1 6
3 5 0
4 0 2
5
Se x
è la vostra matrice quindi utilizzare la funzione isnan
per indicizzare l'array:
x(isnan(x)) = 0
Se lo si fa in due fasi è probabilmente più chiaro per vedere cosa sta succedendo. Prima crea una matrice di valori vero/falso, quindi usala per impostare gli elementi selezionati su zero.
bad = isnan(x);
x(bad) = 0;
Questa è roba piuttosto di base. Farebbe bene a leggere alcuni dei tutorial online su MATLAB per essere subito aggiornato.
4
La funzione isnan
è vectoriz ed, significato:
>> A = [[1;2;NaN; 4; NaN; 8], [9;NaN;12; 14; -inf; 28 ]]
A =
1 9
2 NaN
NaN 12
4 14
NaN -Inf
8 28
>> A(isnan(A)) = 0
A =
1 9
2 0
0 12
4 14
0 -Inf
8 28
Problemi correlati
- 1. sostituire zeri in matrice numpy con il valore mediano
- 2. Sostituire gli zeri in un array intero NumPy con nan
- 3. Utilizzando bool maschera array, sostituire i valori falsi con NaN
- 4. Come posso eseguire il ciclo di tutti i percorsi?
- 5. Pandas sostituire tutti gli elementi di fila con NaN se un valore è NaN
- 6. Matrice di pad con zeri apertiCV
- 7. Looping attraverso una regex sostituire
- 8. Sostituire i valori NaN in un elenco con zero (0)
- 9. panda sostituire gli zeri con precedente valore diverso da zero
- 10. Come eseguire il ciclo attraverso gli articoli statici StackPanel WPF?
- 11. Ciclo Java attraverso i pixel in un'immagine?
- 12. sostituire il valore NaN zero dopo un'operazione con matrici
- 13. Ciclo attraverso i valori Enum "selezionati"?
- 14. Sostituire ciclo foreach con LINQ
- 15. Come sostituire tutte le voci non NaN di un dataframe con 1 e tutte le NaN con 0
- 16. Trova tutti gli elementi NaN all'interno di una matrice
- 17. Come combinare due dizionari senza eseguire il ciclo?
- 18. Jquery: sostituire stringa con i valori da una matrice
- 19. Come eseguire il ciclo attraverso una gerarchia nidificata di NSDictionaries e NSArrays e convertire tutti in copie mutabili?
- 20. Controllare il registro XMM per tutti gli zeri
- 21. MATLAB: utilizzo dell'interpolazione per sostituire i valori mancanti (NaN)
- 22. Ciclo attraverso TUTTI i file in una cartella basata su 'Ultima data modificata'
- 23. Testare se NumPy matrice contiene solo zeri
- 24. jQuery: animato, ciclo continuo attraverso i bambini
- 25. Ciclo continuo attraverso un metodo senza for/foreach/while
- 26. ciclo marino attraverso i colori con dispersione matplotlib
- 27. Guid è tutti 0 (zeri)?
- 28. Ciclo continuo attraverso i campi Modulo e visualizzazione di tutti i campi modulo eccetto il campo nascosto in tale formato
- 29. Sostituire tutti i valori in una matrice <0,1 con 0
- 30. Come sostituire il valore NaN con zero in un enorme frame di dati?
Wow, c'era una differenza di 3 secondi tra la tua risposta e quella accettata ... il differenziale di voto! – rayryeng