Вы можете использовать maxk
вместо сортировки для извлечения верхних 5% значений:
[~, Gsort] = maxk(dG, 0.05 * m);
lambdaSorted = lambda(Gsort, :);
Если у вас есть набор инструментов «Статистика и машинное обучение», вы можете использовать prctile
для извлечения 95nd
процентиля элементов. Опция 'approximate'
не использует сортировку для аппроксимации процентиля и подходит для больших данных.
p = prctile(dG, 95,'Method','approximate');
lambdaSorted = lambda(dG > p, :);
Если вы хотите случайным образом перестановить массив, вы можете использовать randperm
:
idx = randperm(m, 0.05 * m);
lambdaSorted = lambda(idx, :);