% quantile averaging in the case where some subjects have few errors % if in any condition any subject has fewer than 11 errors, this error RT % distribution is ignored. % NB The lines below are exclusively for quantile fitting! dmat_setversion(.31) min_RT = 0.3; max_RT = 2.5; q = [.1 .3 .5 .7 .9]; % the quantiles N_cond = 8; N_sub = 2; %number of subjects; for this illustration we'll just duplicate %the data from "pp14.mat" twice ini = cell(1,N_cond); data = struct('CorrectObs', ini, ... 'IncorrectObs', ini, ... 'CorrectEdges', ini, ... 'IncorrectEdges', ini); for i_sub = 1:N_sub if i_sub==1 fn = 'C:\Documents and Settings\Jepma\Bureaublad\difussiedata\pp14.mat'; end if i_sub==2 fn = 'C:\Documents and Settings\Jepma\Bureaublad\difussiedata\pp14.mat'; end s = load(fn); % All data of one Ss are now in s.data %(1st column = condition, 2nd column = accuracy, 3rd column = RT) % now we need to calculate stuff for each condition seperately. for i = 1:N_cond cond_index = find(s.data(:,1)==i & s.data(:,3)>min_RT & s.data(:,3) 10 observations: enough_corrects(i_sub, i) = total_correct > 10; enough_incorrects(i_sub, i) = total_incorrect > 10; end end % Now we've determined which conditions have "enough" observations to be % taken into account. sum_cor = sum(enough_corrects,1); sum_incor = sum(enough_incorrects,1); % Actual averaging: for i_sub = 1:N_sub if i_sub==1 fn = 'C:\Documents and Settings\Jepma\Bureaublad\difussiedata\pp14.mat'; end if i_sub==2 fn = 'C:\Documents and Settings\Jepma\Bureaublad\difussiedata\pp14.mat'; end s = load(fn); % All data of one Ss are now in s.data for i = 1:N_cond cond_index = find(s.data(:,1)==i & s.data(:,3)>min_RT & s.data(:,3)