由于某种原因,我无法制作八度返回分位数。例子:
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),也会发生同样的情况。那么,问题是什么?问候,赫尔博
由于某种原因,我无法制作八度返回分位数。例子:
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),也会发生同样的情况。那么,问题是什么?问候,赫尔博
a = (1:15)';
quantile(a)
ans =
1.0000
4.2500
8.0000
11.7500
15.0000
Octave 试图计算每一列的值。因为您的输入是行向量,所以每列只有 1 个元素,因此行为很奇怪。您可以通过指定维度(第三个输入参数)或传递列向量(使用x(:)
)来解决此问题。
显然这是 Matlab 的旧行为,但后来发生了变化,Octave 现在将使用第一个非单一维度(参见bug #40736)。如果您正在使用可以正常工作的开发版本(尚未发布):
quantile (1:15)
ans =
1.0000 4.2500 8.0000 11.7500 15.0000