2014-02-13 61 views
0

由于某些原因,我无法使八度回归分位数。例如:八度分位数和百分位

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(一)。那么,问题是什么? 问候,Helbo

回答

0

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

显然这是Matlab的旧行为,但这已经改变,Octave现在将使用第一个非单实体维度(请参阅bug #40736)。如果您使用的开发版本(尚未发布)可以正常工作:

quantile (1:15) 
ans = 

    1.0000 4.2500 8.0000 11.7500 15.0000 
2
a = (1:15)'; 
quantile(a) 
ans = 

    1.0000 
    4.2500 
    8.0000 
    11.7500 
    15.0000