如何使用 Matlab 查找数组中四分位数值的索引值?

How to find the index value of the quartile values in an array using Matlab?

我有一个维度为 1x3000 的向量。我在 Matlab 中使用百分位函数找到了百分位值。但是我无法在向量中找到四分位数的索引值。

y = rand(1,3000);
Q_2 = prctile(y,50);
Idx = find(y==Q_2);

Idx 正在返回一个空值。我应该能够得到包含中值的索引值。

您可以通过以下方式有效地找到最接近中位数的条目(或任意 q_2):

[~,Idx]=min(abs(q_2-y));

根据 help min,作为 Idx 返回的值对应于 first 具有差异向量中最小值的元素。