procRec.m 1.2 KB

12345678910111213141516171819202122232425262728293031323334
  1. %% process recognition
  2. function [hitFalseArray, d] = procRec(dataIn)
  3. try
  4. maxNB = max(dataIn.rec.NB);
  5. minNB = min(dataIn.rec.NB);
  6. %% put left and right subjects together
  7. tmpRight = dataIn.rec(dataIn.rec.RP1 == -1 & dataIn.rec.RT1 == -1, 4:end);
  8. tmpLeft = dataIn.rec(dataIn.rec.RP2 == -1 & dataIn.rec.RT2 == -1, [1:3 7:end]);
  9. tmpData = dataset({[double(tmpLeft); double(tmpRight)], ...
  10. 'RP','RT','Crr','NT','NB','nConfig','LWhite', 'New1', 'TLoc1', 'RBlack', 'New2', 'TLoc2 ','NSub'});
  11. recMeanSub = grpstats(tmpData, {'New1','NB','NSub'},{'mean','sem','numel'}, 'datavars',{'Crr'});
  12. hitRates = recMeanSub.mean_Crr(recMeanSub.New1 == 0,:);
  13. crrReject = recMeanSub.mean_Crr(recMeanSub.New1 == 1,:);
  14. %if the hit or correct rejection rate equals to 1 or 0,set them to 0.9999
  15. %and 0.0001
  16. hitRates(hitRates == 1) = 0.9999;
  17. crrReject(crrReject == 0) = 0.0001;
  18. hitRates(hitRates == 0) = 0.0001;
  19. crrReject(crrReject == 1) = 0.9999;
  20. hitFalseArray = [hitRates 1-crrReject ];
  21. %% calculate d'
  22. d = [norminv( hitFalseArray (:,1) ) - norminv( hitFalseArray (:,2) )];
  23. %
  24. catch ME
  25. disp(ME.message);
  26. end