File Exchange

image thumbnail

Inverse Percentiles of a sample.

version 1.2 (8.4 KB) by

Calculates the non-exceedance probability (inverse of prctile) for xq values from sample of data x.

4.33333
4 Ratings

25 Downloads

Updated

View License

USAGE
         p = INVPRCTILE(x,xq)
         p = INVPRCTILE(x,xq,dim)
         p = INVPRCTILE(x,xq,dim,plot_pos)
        
 INPUT:
    x - Vector or Matrix of sample data
    q - Values for non-exceedance probabilities to be computed.
        q can be scalar or vector
 dim - Dimension for matrix to be worked for non-exceedance probability
plot_pos - plotting positions that determine interpolation method

 OUTPUT:
    p - Non-exceedance probabilities values for q.

When x is a vector, p is the same size as xq, and p(i) contains the non-exceedance probability for xq(i) value.

When x is a matrix, the i-th row of p contains
the non-exceedance probability for xq(i)-values of each column of x.

For N-D arrays, INVPRCTILE operates along the first non-singleton dimension.
                    
 EXAMPLES:
    x = rand(100,1);
    q = [0.1 0.25 0.8];
    p = invprctile(x,q);
    % Check with prctile to get back the same results
    qvalues = prctile(x,p)

Comments and Ratings (4)

Terry

Terry (view profile)

Nice one! Seems to work well.

Would be nice to add a check that if only one argin is entered (one column/vector) - then it calcs inverse prctile on each entry of the column/vector.

For example, I have a vector
myvector=[0.8 0.5 .2 0.6 0.8 0.5 0.3 0.6 0.9 1.3]'
and I want to find what percentile each corresponds to, so I run
invprctile(myvector,myvector)

It would be a bit cleaner to be able to just call invprctile(myvector)

Updates

1.2

1. Fixing behaviour of unique function after MATLAB R2012b

2. Possibility to use different plotting position

1.1

Bug fixing for not strictly monotonic increasing x values

MATLAB Release
MATLAB 8.0 (R2012b)

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video