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



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

首先按降序对样本进行排序,然后选择前 10%:

[sortedVector, idxs] = sort(vector,'descend');
sampleRange = 1:floor(0.1*length(vector));
sample = sortedVector(sampleRange);
idxsSample = idxs(sampleRange);

这将完成这项工作:

x = 1:100; 
v = prctile(x,90);
res = find(x>v)

我把 90 放在v,因为你正在寻找前 10%,也就是第 90 个百分位。上面的x只是一个示例,您可以将其替换为您的x

最新更新