如何在Matlab中找到矢量中10%最高样本的索引?

时间:2017-07-05 14:57:23

标签: matlab vector

我的矢量只有实数。矢量的长度是5000个样本。我想找到10%最高样本的索引(总共500个样本)。想知道如何在Matlab中做到这一点吗?

2 个答案:

答案 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