В MATLAB есть ли более сжатый способ обработки дискретного условного индексирования по столбцу, чем с использованием цикла for? Вот мой код:Существует ли векторизованный способ работы с другим числом значений для столбца в MATLAB?
x=[1 2 3;4 5 6;7 8 9];
w=[5 3 2];
q=zeros(3,1);
for i = 1:3
q(i)=mean(x(x(:,i)>w(i),i));
end
q
Моя цель состоит в том, чтобы взять среднее значение верхней х% набора значений для каждого столбца. Вышеприведенный код работает, но мне просто интересно, есть ли более сжатый способ сделать это?
Вы просто пытаетесь взять среднее значение столбца после того, как вы исключите выбросы? Можете ли вы рассказать о том, чего вы пытаетесь достичь? – linuxuser27
Моя цель - принять среднее значение вершины x% от набора значений для каждой серии серий. У меня есть матрица с столбцом данных для каждого прогона и используется функция prctile для определения моего условия для каждого прогона. Хотя приведенный выше код работает, кажется, что может быть более сжатый способ выполнить эту задачу. – user338714