Много наборов данных имеют одно или несколько отсутствующих значений. Для отсутствующих значений кода как NaN (Не Номер) удобно сохранить структуру наборов данных через несколько переменных и наблюдений.
Нормальные арифметические операции MATLAB® приводят к значениям NaN, когда операндами является NaN. Удаление значений NaN уничтожило бы матричную структуру. Удаление строк, содержащих значения NaN, отбросило бы данные. Функции Statistics and Machine Learning Toolbox™ в следующей таблице удаляют значения NaN только в целях вычисления.
| Функция | Описание |
|---|---|
nancov | Ковариационная матрица, игнорируя значения |
nanmax | Максимум, игнорируя значения |
nanmean | Среднее значение, игнорируя значения |
nanmedian | Медиана, игнорируя значения |
nanmin | Минимум, игнорируя значения |
nanstd | Стандартное отклонение, игнорируя значения |
nansum | Суммируйте, игнорируя значения |
nanvar | Отклонение, игнорируя значения |
Другие функции Statistics and Machine Learning Toolbox также игнорируют значения NaN. Они включают iqr, kurtosis, mad, prctile, range, skewness и trimmean.
Создайте 3х3 матрицу выборочных данных. Удалите два значения данных, заменив их на NaN.
X = magic(3); X([1 5]) = [NaN NaN]
X = 3×3
NaN 1 6
3 NaN 7
4 9 2
Вычислите сумму для каждого столбца матрицы выборочных данных использование функции sum.
s1 = sum(X)
s1 = 1×3
NaN NaN 15
Если столбец будет содержать значение NaN, то функция sum возвратит NaN как сумму данных в том столбце.
Для сравнения вычислите сумму для каждого столбца матрицы выборочных данных использование функции nansum.
s2 = nansum(X)
s2 = 1×3
7 10 15
Если столбец содержит значение NaN, то функция nansum игнорирует значение NaN и возвращает сумму остающихся значений в столбце.