Как да извлечете нули в Matlab
Стъпка 1
Копирайте оригиналната матрица за данни на друга променлива, като зададете нейната стойност на ново име на променлива. Ако трябва да използвате матрицата така, както е преди да премахнете нулите, можете да използвате тази нова променлива.
Ако матрицата се нарича М, например, да я зададете на нова променлива, наречена Mzeros. За да направите това, напишете "Mzeros = M" (без кавичките) в командния ред на Matlab.
Стъпка 2
Запазете оригиналната матрица на данните в текстов файл, в случай че по-късно се нуждаете от нея, като използвате функцията "dlmwrite" на MATLAB. Ако променливата MATLAB, която случайно съхранява вашите данни, е изтрита или презаписана, можете да презаредите оригиналните данни от този текстов файл.
Например, ако матрицата на оригиналните данни се съхранява в променливата Mzeros, въведете "dlmwrite (" Mzeros.dat ", Mzeros)" (без кавичките), за да напишете Mzeros в текстов файл, наречен Mzeros.dat.
Можете да пропуснете тази стъпка, ако данните вече са съхранени в текстов файл.
Стъпка 3
Решете дали трябва да запазите матрицата с данни със същия размер и форма. Пазете размера на матрицата и формата, ако редовете на матрицата и колоните имат специфично значение (например всеки ред представлява различен експериментален тест и всяка колона представлява различно количество измерване). За да запазите същия размер и форма, заменете всяка нулева стойност със стойност на заместителя NaN (която представлява "не е число").
За да замените стойностите на нули с NaN в матрица, наречена M, напишете "M (M == 0) = NaN" без кавичките. Уверете се, че пишете M == 0 с два признака за равенство. Тази команда казва на MATLAB да намери всички елементи на M равни на нула и да ги замени с NaN.
Всичко в матрицата остава в една и съща позиция (същия ред и колона), но всички нули сега ще бъдат NaN. Тъй като повечето от функциите на MATLAB игнорират стойностите на NaN, можете да ги графирате и анализирате така, сякаш не са налице NaNs, като получавате значителни резултати.
Стъпка 4
Можете да премахнете напълно нулевите елементи (вместо да ги замените с заместващи символи), ако масивът е прост списък със стойности, без значими редове и колони. За да премахнете нулевите елементи в матрицата, наречена M, напишете "M (M == 0) = []" (без кавичките). Уверете се, че пишете M == 0 с два признака за равенство. Тази команда казва на MATLAB да намери всички елементи на M равни на нула и да ги замени с []. [] представлява "празен". Замяната на стойност с [] премахва този елемент.
Ако M е двуизмерна матрица, сега ще бъде колонен вектор, който съдържа всички ненулеви елементи на оригиналния M, взет като колона. Например, ако M е масив с два реда и четири колони:
[1 6 0 3 2 0 7 4]
сега тя ще бъде [1 2 6 7 3 4].
Ако M е вектор (само един ред или колона), сега той ще бъде по-кратък вектор. Например, ако M е [1 2 0 3], сега той ще бъде [1 2 3].
Матрицата променя формата и размера си, когато изтриете нулевите елементи. Но тъй като матрицата няма стойности на NaN заместителя, можете да анализирате данните, дори и с функциите на MATLAB, които не игнорират стойностите на NaN.