此列表是真实情况的最小示例
list = [0.2 0.1 0.3 0.4 0.7 0.5 0.6 0.9 1.0];
我排序
sorted_list = sort(list, 'descend');
我需要在list中获得 10% 的最高值索引。
我的尝试
% Take the amount of indexes to 10%
limit = size(sorted_list);
size = limit(1);
limit = ceil(0.1*size);
% find the index numbers from the original list which corresponds to the highest indexes
for j = 1:limit
value = sorted_list(j);
for k = 1:size
if value == list(k)
refine_set(j) = k;
% here much resources used, should be able stop if matching
% early, so should be able to stop the for-loop somehow
% I do not want to use while-loop, since in some cases, this would cause
% infinite loop
end;
end;
end;
我开始认为必须有更好的方法来做到这一点。函数max似乎没有允许我获取代表最大值 10% 的索引的参数。
获取原始列表中代表列表中最大值 10% 的索引的好方法是什么?
这项任务的好的数据结构是什么?