1

由于某种原因,我无法制作八度返回分位数。例子:

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),也会发生同样的情况。那么,问题是什么?问候,赫尔博

4

2 回答 2

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

    1.0000
    4.2500
    8.0000
   11.7500
   15.0000
于 2014-02-13T11:32:42.203 回答
1

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

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

quantile (1:15)
ans =

    1.0000    4.2500    8.0000   11.7500   15.0000
于 2014-02-14T13:47:43.040 回答