Работа с пропущенными значениями в MATLAB: методы вычисления среднего значения без NaN

Отсутствующие значения, часто представленные как NaN (не число), могут создавать проблемы при выполнении анализа данных и вычислений в MATLAB. Одной из распространенных задач является вычисление среднего значения набора данных без учета значений NaN. В этой статье блога мы рассмотрим несколько методов вычисления среднего значения без NaN в MATLAB, а также приведем примеры кода.

Метод 1: использование функции nanmean()
Функция nanmean() в MATLAB вычисляет среднее значение массива, игнорируя значения NaN. Вот пример:

data = [1, 2, NaN, 4, 5];
meanValue = nanmean(data);
disp(meanValue);

Выход:

3.0

Метод 2: удаление значений NaN с помощью isnan() и вычисления среднего значения
В этом методе мы удаляем значения NaN из набора данных перед вычислением среднего значения. Вот пример:

data = [1, 2, NaN, 4, 5];
cleanData = data(~isnan(data));
meanValue = mean(cleanData);
disp(meanValue);

Выход:

3.0

Метод 3: игнорирование значений NaN с помощью sum() и numel()
Этот метод включает в себя суммирование значений и деление на количество элементов, отличных от NaN. Вот пример:

data = [1, 2, NaN, 4, 5];
meanValue = sum(data, 'omitnan') / numel(data(~isnan(data)));
disp(meanValue);

Выход:

3.0

Метод 4: использование пользовательской функции
Если вы предпочитаете более индивидуальный подход, вы можете написать пользовательскую функцию для вычисления среднего значения без NaN. Вот пример:

function meanValue = customMean(data)
    nonNaNData = data(~isnan(data));
    meanValue = sum(nonNaNData) / numel(nonNaNData);
end
data = [1, 2, NaN, 4, 5];
meanValue = customMean(data);
disp(meanValue);

Выход:

3.0

Обработка пропущенных значений, особенно NaN, — важный этап очистки и анализа данных. В этой статье мы исследовали несколько методов вычисления среднего значения без NaN в MATLAB. Функция nanmean() предоставляет удобный способ вычисления среднего значения, игнорируя значения NaN. Альтернативно вы можете удалить значения NaN перед вычислением среднего значения с помощью функций isnan() или sum() и numel(). Кроме того, вы можете создать собственную функцию для расчета среднего значения. Применяя эти методы, вы можете обеспечить точные и надежные результаты в своих проектах анализа данных MATLAB.