Innehåll
Nollvärdena i din MATLAB-grupp (vetenskaplig databehandling) kan göra det svårt att analysera dina data. Statistik eller signalbehandling kan generera nonsensresultat, och grafik kan vara svårt att läsa när nullvärden representeras. Extrahera dem - ta bort dem från din matris - låter dig arbeta med användbara data för att uppnå meningsfulla resultat.
vägbeskrivning
Att extrahera nullvärden kan hjälpa dig att skapa användbara grafik av dina data (Thinkstock / Comstock / Getty Images)-
Kopiera din ursprungliga array till en annan variabel. Om du behöver använda arrayen som det var innan du tog bort nollorna kan du använda den här nya variabeln.
Om arrayen heter M, tilldela den till exempel en ny variabel som heter Mzeros. För att göra detta, skriv "Mzeros = M" (utan citattecken) på kommandoraden "MATLAB".
-
Spara originalmatrisen till en textfil om du behöver den senare med hjälp av funktionen "dlmwrite" i "MATLAB". Om den rörliga lagringen oavsiktligt raderas eller skrivs om, kan du ladda om originaldata från textfilen.
Om till exempel den ursprungliga matrisen är lagrad i Mzeros-variabeln, skriv "dlmwrite ('Mzeros.dat', Mzeros)" för att skriva till Mzeros i en textfil med namnet Mzeros.dat.
Du kan hoppa över det här steget om dina data redan är lagrade i en textfil.
-
Bestäm om du behöver hålla din array i samma storlek och format. Håll det på så sätt om raderna och kolumnerna har en specifik betydelse (till exempel representerar varje rad ett annat försökstest och varje kolumn representerar en annan mängd mått). För att bibehålla samma storlek och format, ersätt varje nollvärde med ett NaN-värde (som representerar "inte ett nummer").
För att ersätta nollvärdena med NaN i en array som heter M, skriv "M (M == 0) = NaN". Var noga med att ange M == 0 med två lika tecken. Detta kommando kommer att berätta "MATLAB" för att hitta alla element i M lika med noll och ersätta dem med NaN.
Allt i matrisen kommer att vara i samma position (samma rad och kolumn), men alla nollor kommer nu att vara NaN. Eftersom de flesta "MATLAB" -funktioner ignorerar NaN-värdena kan du sätta data i diagram och analysera dem även om NaNs inte finns där, vilket ger signifikanta resultat.
-
Du kan radera nollelementen helt (i stället för att ersätta dem med NaN-värden) om arrayen är en enkel lista över värden utan betydande rader och kolumner. För att radera nullelementen i matrisen med namnet M, skriv "M (M == 0) = []" (utan citattecken). Var noga med att ange M == 0 med två lika tecken. Detta kommando kommer att berätta "MATLAB" för att hitta alla element lika med noll och ersätta dem med []. [] Representerar "tom". Byte av ett värde med [] raderar elementet.
Om M är en tvådimensionell matris, kommer den nu att vara en kolumnvektor, som innehåller alla icke-nollelement i det ursprungliga M, i kolumnavkänningen. Till exempel, om M var en rad med två rader och två kolumner:
[1 6 0 3 2 0 7 4]
nu blir det
[1 2 6 7 3 4]
Om M är en vektor (bara en rad eller kolumn) kommer den nu att vara en kort vektor. Till exempel, om M var [1 2 0 3], blir det nu [1 2 3].
Arrayen ändras i storlek och format när du tar bort nollelementen. Men om det inte har NaN-värdet kan du analysera data även med "MATLAB" -funktioner som inte ignorerar dessa värden.
varning
- Se till att nollvärden inte är meningsfulla innan du tar bort dem. Om de betyder någonting i dina uppgifter, kan borttagning av dem ge fel och skadade resultat.
- Om din matris är för stor kan det hända att du kopierar det till en annan variabel, vilket gör att "MATLAB" är långsamt och oroligt. Se till att den är sparad i en textfil och inte kopiera den till en annan variabel.
- Det finns få funktioner som inte ignorerar NaNs, och kan återkomma med fel eller meningslösa resultat om du använder dem. Kontrollera dokumentationen "MATLAB" för varje funktion du använder i din dataanalys.
Vad du behöver
- Numerisk data
- dator
- MATLAB