2013-01-21 8 views

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 
+0

Wow, c'era una differenza di 3 secondi tra la tua risposta e quella accettata ... il differenziale di voto! – rayryeng

Problemi correlati