由于某种原因我不能使八度音程返回分位数。示例:
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
答案 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