Вычисление среднего по столбцу с условием - PullRequest
0 голосов
/ 02 июля 2018

Итак, мой вопрос заключается в следующем: у меня есть матрица (давайте возьмем

A = [ 1 11 22 33; 44 13 12 33; 1 14 33 44,]

в качестве примера) где я хочу вычислить среднее для всех столбцов в отдельности. Сложность в том, что я хочу вычислить только среднее значение для тех чисел в каждом столбце, которые больше 25-го процентиля столбца.

Я думал просто создать 25-й процентиль, а затем использовать его в качестве критерия для выбора строк. Это, к сожалению, не работает.

Для дальнейшего уточнения: нужно пройти через каждый столбец и вычислить 25-й процентиль

prctile(A,25,1)

И затем вычисление среднего значения только для тех чисел, которые соответственно для их столбца больше, чем процентиль.

Любая помощь? Спасибо!

1 Ответ

0 голосов
/ 02 июля 2018

Вы можете создать версию A, которая равна NaN для значений ниже 25-го процентиля, а затем использовать флаг 'omitnan' в mean, чтобы исключить эти точки:

A = [1 11 22 33; 44 13 12 33; 1 14 33 44];
B = A; % copy to leave A unaltered
B( B <= prctile(B,25,1) ) = NaN; % Turn values to NaN which we want to exclude
C = mean( B, 1, 'omitnan' ); % Omit the NaN values from the caculation
% C >>
%  [ 15.33 13.50 27.50 36.67 ]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...