八度分位数和百分位数

时间:2014-02-13 10:52:28

标签: octave percentile quantile

由于某种原因我不能使八度音程返回分位数。示例:

a = 1:15;
quantile(a)
ans= 1 2 3 4 5 6 ... 15

虽然我希望有类似的东西:

ans= 1.0  4.5  8.0 11.5 15.0

如果我尝试prctile(a),也会发生同样的情况。那么,问题是什么? 此致,Helbo

2 个答案:

答案 0 :(得分:2)

a = (1:15)';
quantile(a)
ans =

    1.0000
    4.2500
    8.0000
   11.7500
   15.0000

答案 1 :(得分:0)

Octave试图计算每列的值。因为您的输入是行向量,所以每列只有1个元素,因此是奇怪的行为。您可以通过指定维度(第三个输入参数)或传递列向量(使用x(:))来解决此问题。

显然这是Matlab的旧行为,但后来发生了变化,Octave现在将使用第一个非单一维度(见bug #40736)。如果您正在使用可以正常工作的开发版本(尚未发布):

quantile (1:15)
ans =

    1.0000    4.2500    8.0000   11.7500   15.0000