Riješeno: ukloniti nan

Posljednje ažuriranje: 09/19/2023

Naravno, počeću sa problemom uklanjanja NaN vrednosti u MATLAB-u, što je čest problem sa kojim se programeri susreću kada rade.

NaN (Nije broj) je vrijednost koja je nedefinirana ili se ne može predstaviti , što se često javlja kada matematička operacija ne uspije proizvesti određenu numeričku vrijednost. U MATLAB-u, nedostajući ili nedefinirani podaci predstavljaju se terminom 'NaN'. Iako ovo može biti korisno, postoji nekoliko situacija u kojima su NaN vrijednosti problematične i potrebno ih je eliminirati.

Rješavanje problema NaN u MATLAB-u

Rukovanje i uklanjanje NaN vrijednosti u MATLAB vektoru ili matrici je uobičajen rutinski proces u analizi podataka. Često su NaN vrijednosti nebitne za ostale podatke i mogu se ukloniti bez utjecaja na integritet istraživanja ili analize. Evo nekoliko metoda koje možete koristiti za uklanjanje NaN elemenata iz niza.

Funkcija 'isnan' u MATLAB-u vraća logički niz koji identificira NaN elemente u originalnom nizu. 'isnan' označava 'nije broj', a funkcija će vratiti 1 (tačno) za svaki NaN element u originalnom nizu i 0 (netačno) za bilo koji drugi element.

A = [1 2 NaN; NaN 5 6; 7 8 NaN];
TF = isnan(A);

Objašnjenje koda korak po korak

U prvom redu, definirali smo 3×3 niz 'A' koji sadrži NaN vrijednosti. U sljedećem redu koristimo isnan funkciju za identifikaciju NaN vrijednosti u 'A'. Isnan funkcija pregledava 'A' i vraća odgovarajuću vrijednost (1 ili 0) za NaN (1) i za NOT NaN (0). Izlaz 'TF' će biti 3×3 niz koji prikazuje poziciju NaN vrijednosti kao 'True' u 'A'.

TF =
 0     0     1
 1     0     0
 0     0     1

Zamjena ili uklanjanje NaN vrijednosti

Za uklanjanje NaN vrijednosti iz niza, jedna od često korištenih funkcija je 'pronađi'. Funkcija find pronalazi indekse elemenata niza koji ispunjavaju određeni uslov, a u ovom slučaju tražimo elemente 'ne broj'. Zatim uklanja ove indekse iz niza, efektivno uklanjajući NaN vrijednosti.

[i, j] = find(isnan(A));
A(i,j) = [];

Rješenja sa specifičnim MATLAB bibliotekama ili funkcijama

Drugi način je korištenje ugrađenih funkcija. Jedan od njih je 'rmmissing', koji je uveden u MATLAB R2017b. Sa 'rmmissing', možete ukloniti bilo koji red ili stupac s nedostajućom vrijednošću (NaN) u matrici ili tablici.

A = rmmissing(A);

Ova funkcija skenira niz ili tabelu 'A', eliminira sve redove koji sadrže NaN vrijednosti i ponovno dodjeljuje očišćene podatke natrag u 'A'.

MATLAB pruža praktičnost i niz ugrađenih funkcija za precizno rješavanje NaN problema. Najbolje je da se upoznate s ovim bibliotekama kako biste nesmetano rješavali takve probleme u analizi podataka.

Napomena: Uvijek budite oprezni kada uklanjate NaN ili nedostajuće vrijednosti, jer su ponekad te vrijednosti tu s razlogom i jednostavno njihovo uklanjanje može iskriviti vaše podatke ili rezultate. Uvijek temeljito razumite svoje podatke i kontekst prije nego što nastavite s uklanjanjem ili zamjenom NaN vrijednosti.

Slični postovi: