2013-01-21 19 views

Odpowiedz

23

Załóżmy, że macierz jest:

A = 
    NaN 1  6 
    3  5  NaN 
    4  NaN  2 

można znaleźć NaN elementów i zastąpić je zera stosując isnan takiego:

A(isnan(A)) = 0; 

Wtedy twoje wyjście będzie:

A = 
    0  1  6 
    3  5  0 
    4  0  2 
5

Jeśli x to matryca następnie użyć funkcji isnan do indeksowania tablicy:

x(isnan(x)) = 0 

Jeśli zrobisz to w dwóch etapach, to chyba wyraźniej zobaczyć, co się dzieje. Najpierw utwórz tablicę wartości true/false, a następnie użyj tej opcji, aby ustawić wybrane elementy na zero.

bad = isnan(x); 
x(bad) = 0; 

Jest to dość podstawowe rzeczy. Dobrze by było przeczytać niektóre samouczki online na temat MATLAB, aby uzyskać szybki postęp.

4

Funkcja isnan jest vectoriz ed, czyli:

>> 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, różnica między twoją odpowiedzią a akceptacją była 3 sekunda ... różnica głosów! – rayryeng

Powiązane problemy