我的矢量只有实数。矢量的长度是5000个样本。我想找到10%最高样本的索引(总共500个样本)。想知道如何在Matlab中做到这一点吗?
答案 0 :(得分:5)
首先按降序对样本进行排序,然后选择前10%:
[sortedVector, idxs] = sort(vector,'descend');
sampleRange = 1:floor(0.1*length(vector));
sample = sortedVector(sampleRange);
idxsSample = idxs(sampleRange);
答案 1 :(得分:4)
这将完成这项工作:
x = 1:100;
v = prctile(x,90);
res = find(x>v)
我在v
中放了90,因为你正在寻找前10%,即第90个百分点。上面的x
只是一个示例,您可以将其替换为x
。