3
#include <fff_routines.h>
7
Y = fffMat_quantile( X, P )
9
X : two-dimensional array
10
P : value between 0 and 1
15
void mexFunction( int nlhs, mxArray *plhs[],
16
int nrhs, const mxArray*prhs[] )
23
int i, nvox, flagInterp = 0;
25
/* Check for proper number of arguments. */
27
mexErrMsgTxt("Two input arguments required.");
30
mexErrMsgTxt("Too many output arguments");
34
X = gsl_vector_list_from_mxArray_new( prhs[0], &nvox );
35
P = *mxGetPr( prhs[1] );
37
flagInterp = (int) ( *mxGetPr( prhs[2] ) );
40
plhs[0] = mxCreateDoubleMatrix( 1, nvox, mxREAL );
41
Y = gsl_vector_from_mxArray( plhs[0] );
44
aux = gsl_vector_alloc( X[0]->size );
46
/* Loop over voxels */
47
for( i=0; i<nvox; i++ ) {
48
gsl_vector_memcpy( aux, X[i] );
49
gsl_vector_set ( Y, i, fff_quantile_from_temp_data( aux, P, flagInterp ) );
54
gsl_vector_list_from_mxArray_delete( X, nvox );
56
gsl_vector_free( aux );