DrawFormattedText(screenInfo.curWindow,'\nWillkommen bei der Multi-Attribut Aufgabe\n\nIm folgenden werden Sie Punktewolken sehen, die verschiedene Charakteristika aufweisen: \n\n Bewegungsrichtung \n Helligkeit \n Gre \n Farbe \n\n Im Folgenden sehen Sie ein (lngeres) Beispiel','center','center');
Screen('Flip',screenInfo.curWindow);
% wait for experimenter to resume session
whiletrue
[exitSession,resumeSession]=checkKeys(dotInfo);
ifresumeSession
break
elseifexitSession
closeExperiment;
return
end
end
%% Show first 5 second example
dotInfo.durCue=0;% duration of cue
dotInfo.durPres=5;% duration of presentation
dotInfo.durResp=0;% duration of question
dotInfo.durConf=0;% duration of confidence
dotInfo.MAT.percAtt1H=.65;
dotInfo.MAT.percAtt1L=1-dotInfo.MAT.percAtt1H;
dotInfo.MAT.percAtt2H=.65;
dotInfo.MAT.percAtt2L=1-dotInfo.MAT.percAtt2H;
dotInfo.MAT.percAtt3H=.65;
dotInfo.MAT.percAtt3L=1-dotInfo.MAT.percAtt3H;
dotInfo.MAT.percAtt4H=.65;
dotInfo.MAT.percAtt4L=1-dotInfo.MAT.percAtt4H;
dotInfo.MAT.color=[255255255;25500];
dotInfo.MAT.coherence=1;% define dot movement (coherence) [useless now!]
DrawFormattedText(screenInfo.curWindow,'Nun sehen Sie die Attribute einzeln und in der spteren Anzeigedauer. \n Bitte geben Sie an, von welcher der beiden Optionen mehr vorhanden ist.','center','center');
Screen('Flip',screenInfo.curWindow);
pause(1);
% wait for experimenter to resume session
whiletrue
[exitSession,resumeSession]=checkKeys(dotInfo);
ifresumeSession
break
elseifexitSession
closeExperiment;
return
end
end
%% Instruction
DrawFormattedText(screenInfo.curWindow,'Wir beginnen mit der Farbe. \n\n Falls die weien Punkte dominieren, drcken Sie die linke Taste. \n Falls die roten Punkte dominieren, dcken Sie die rechte Taste. \n\n Im Anschluss an Ihre Antwort erhalten Sie eine Rckmeldung.','center','center');
Screen('Flip',screenInfo.curWindow);
pause(1);
% wait for experimenter to resume session
whiletrue
[exitSession,resumeSession]=checkKeys(dotInfo);
ifresumeSession
break
elseifexitSession
closeExperiment;
return
end
end
%% 1st dimension
% intialize psi parameters
PM=PAL_AMPM_setupPM(...
'priorAlphaRange',P.PM.priorAlphaRange,...
'priorBetaRange',P.PM.priorBetaRange,...
'gamma',P.PM.priorGammaRange,...
'priorLambdaRange',P.PM.priorLambdaRange,...
'stimRange',P.PM.stimRange,...
'numtrials',P.PM.numtrials,...
'PF',P.PM.PF,...
'marginalize','slope','marginalize','lambda');
% intiate parameters
indTrial=1;
DisplayInfo.CombPositionByTrial=[];
DisplayInfo.CombSamples=[];
ResultMat=[];
% run the staircase algorithm until criterion is reached
DrawFormattedText(screenInfo.curWindow,'Als nchstes die Bewegungsrichtung. \n\n Falls die Bewegung nach links dominiert, drcken Sie die linke Taste. \n Falls die Bewegung nach rechts dominiert, dcken Sie die rechte Taste.','center','center',[255255255]);
Screen('Flip',screenInfo.curWindow);
pause(1);
% wait for experimenter to resume session
whiletrue
[exitSession,resumeSession]=checkKeys(dotInfo);
ifresumeSession
break
elseifexitSession
closeExperiment;
return
end
end
%% 2nd dimension
% intialize psi parameters
PM=PAL_AMPM_setupPM(...
'priorAlphaRange',P.PM.priorAlphaRange,...
'priorBetaRange',P.PM.priorBetaRange,...
'gamma',P.PM.priorGammaRange,...
'priorLambdaRange',P.PM.priorLambdaRange,...
'stimRange',P.PM.stimRange,...
'numtrials',P.PM.numtrials,...
'PF',P.PM.PF,...
'marginalize','slope','marginalize','lambda');
% intiate parameters
indTrial=1;
DisplayInfo.CombPositionByTrial=[];
DisplayInfo.CombSamples=[];
ResultMat=[];
% run the staircase algorithm until criterion is reached
DrawFormattedText(screenInfo.curWindow,'Als nchstes die Punktgre. \n\n Falls die kleineren Punkte dominieren, drcken Sie die linke Taste. \n Falls die greren Punkte dominieren, dcken Sie die rechte Taste.','center','center',[255255255]);
Screen('Flip',screenInfo.curWindow);
pause(1);
% wait for experimenter to resume session
whiletrue
[exitSession,resumeSession]=checkKeys(dotInfo);
ifresumeSession
break
elseifexitSession
closeExperiment;
return
end
end
%% 3rd dimension
% intialize psi parameters
PM=PAL_AMPM_setupPM(...
'priorAlphaRange',P.PM.priorAlphaRange,...
'priorBetaRange',P.PM.priorBetaRange,...
'gamma',P.PM.priorGammaRange,...
'priorLambdaRange',P.PM.priorLambdaRange,...
'stimRange',P.PM.stimRange,...
'numtrials',P.PM.numtrials,...
'PF',P.PM.PF,...
'marginalize','slope','marginalize','lambda');
% intiate parameters
indTrial=1;
DisplayInfo.CombPositionByTrial=[];
DisplayInfo.CombSamples=[];
ResultMat=[];
% run the staircase algorithm until criterion is reached
DrawFormattedText(screenInfo.curWindow,'Als letztes die Punkthelligkeit. \n\n Falls die dunkleren Punkte dominieren, drcken Sie die linke Taste. \n Falls die helleren Punkte dominieren, dcken Sie die rechte Taste.','center','center',[255255255]);
Screen('Flip',screenInfo.curWindow);
pause(1);
% wait for experimenter to resume session
whiletrue
[exitSession,resumeSession]=checkKeys(dotInfo);
ifresumeSession
break
elseifexitSession
closeExperiment;
return
end
end
%% 4th dimension
% intialize psi parameters
PM=PAL_AMPM_setupPM(...
'priorAlphaRange',P.PM.priorAlphaRange,...
'priorBetaRange',P.PM.priorBetaRange,...
'gamma',P.PM.priorGammaRange,...
'priorLambdaRange',P.PM.priorLambdaRange,...
'stimRange',P.PM.stimRange,...
'numtrials',P.PM.numtrials,...
'PF',P.PM.PF,...
'marginalize','slope','marginalize','lambda');
% intiate parameters
indTrial=1;
DisplayInfo.CombPositionByTrial=[];
DisplayInfo.CombSamples=[];
ResultMat=[];
% run the staircase algorithm until criterion is reached
[~,dotInfo,ExperimentProtocol,ResultMat,DisplayInfo]=dotsX_JQK_MAT_170704(screenInfo,dotInfo,targets,indTrial,ExperimentProtocol,ResultMat,DisplayInfo);% update accuracy for the staircase code
trial.resp=ResultMat(indTrial,4);
% update PM structure
PM=PAL_AMPM_updatePM(PM,trial.resp);
indTrial=indTrial+1;
end
Results{1,4}=dotInfo;
Results{2,4}=ExperimentProtocol;
Results{3,4}=ResultMat;
Results{4,4}=PM;
Results{5,4}=DisplayInfo;
% estimate threshold
thresholds.luminance=PM.threshold(end);
%% Instruction
DrawFormattedText(screenInfo.curWindow,'Nun kennen Sie alle Attribute. \n Diese werden Ihnen im Folgenden gemeinsam prsentiert. \n Bitte geben Sie wie oben immer an, welche der beiden Optionen eines Attributs den Eindruck dominiert. \n Das relevante Attribut wird Ihnen dabei nach der Prsentation prsentiert.','center','center',[255255255]);