Jak wyodrębnić zera w Matlabie

Wyodrębnianie wartości od zera może pomóc w tworzeniu przydatnych diagramów z danymi.

Krok 1

Skopiuj oryginalną macierz danych do innej zmiennej, przypisując jej wartość do nowej nazwy zmiennej. Jeśli chcesz użyć macierzy tak, jak przed usunięciem zer, możesz użyć tej nowej zmiennej.

Jeśli macierz nazywa się M, na przykład przypisz ją do nowej zmiennej o nazwie Mzeros. Aby to zrobić, wpisz "Mzeros = M" (bez cudzysłowów) w wierszu poleceń Matlaba.

Krok 2

Zapisz oryginalną macierz danych w pliku tekstowym na wypadek, gdyby była potrzebna później, korzystając z funkcji "dlmwrite" programu MATLAB. Jeśli zmienna MATLAB, która przypadkowo przechowuje twoje dane, jest usuwana lub zastępowana, możesz ponownie załadować oryginalne dane z tego pliku tekstowego.

Na przykład, jeśli oryginalna macierz danych jest przechowywana w zmiennej Mzeros, wpisz "dlmwrite (" Mzeros.dat ", Mzeros)" (bez cudzysłowów), aby napisać Mzeros do pliku tekstowego o nazwie Mzeros.dat.

Możesz pominąć ten krok, jeśli dane są już zapisane w pliku tekstowym.

Krok 3

Zdecyduj, czy chcesz zachować macierz danych o tej samej wielkości i kształcie. Zachowaj rozmiar matrycy i kształtu, jeśli wiersze macierzy i kolumny mają określone znaczenie (na przykład każdy wiersz reprezentuje inny test eksperymentalny, a każda kolumna reprezentuje inną wielkość pomiaru). Aby zachować ten sam rozmiar i kształt, zastąp każdą wartość zerową wartością zastępczą NaN (która oznacza "nie jest liczbą").

Aby zastąpić wartości zer NaN w macierzy M, napisz "M (M == 0) = NaN" bez cudzysłowów. Upewnij się, że piszesz M == 0 z dwoma znakami równości. To polecenie mówi MATLAB, aby znaleźć wszystkie elementy M równe zeru i zastąpić je NaN.

Wszystko w macierzy pozostaje w tej samej pozycji (ten sam wiersz i kolumna), ale wszystkie zera będą teraz NaN. Ponieważ większość funkcji MATLAB ignoruje wartości NaN, można je analizować i analizować tak, jakby nie istniały na NaN, uzyskując znaczące wyniki.

Krok 4

Możesz całkowicie usunąć elementy zerowe (zamiast zastępowania ich elementami zastępczymi), jeśli tablica jest prostą listą wartości bez znaczących wierszy i kolumn. Aby wyeliminować zero elementów w macierzy o nazwie M, napisz "M (M == 0) = []" (bez cudzysłowów). Upewnij się, że piszesz M == 0 z dwoma znakami równości. To polecenie mówi MATLAB, aby znaleźć wszystkie elementy M równe zero i zastąpić je []. [] oznacza "pusty". Zastąpienie wartości przez [] usuwa ten element.

Gdyby M było dwuwymiarową matrycą, będzie to teraz wektor kolumnowy, który zawiera wszystkie niezerowe elementy oryginalnego M, przyjmowane jako kolumna. Na przykład, jeśli M jest tablicą z dwoma wierszami i czterema kolumnami:

[1 6 0 3 2 0 7 4]

teraz będzie [1 2 6 7 3 4].

Jeśli M był wektorem (tylko jeden wiersz lub kolumna), będzie teraz krótszym wektorem. Na przykład, jeśli M było [1 2 0 3], teraz będzie to [1 2 3].

Macierz zmienia swój kształt i rozmiar po usunięciu elementów zerowych. Ale ponieważ macierz nie ma wartości symboli zastępczych NaN, można analizować dane, nawet z funkcjami MATLAB, które nie ignorują wartości NaN.