I’m not sure the solutions presented above actually work, I am getting the same issues as here: Dynamically changing step sizes in a staircase method
from psychopy import data, event
import random
staircase = data.StairHandler(startVal=50, stepType='lin', stepSizes = 10, nUp=1, nDown=2, nTrials=10)
trial = 0
for thisTrial in staircase:
if trial > 2:
staircase.stepSizes = 1
print(thisTrial)
if random.random() > 0.5:
staircase.addData(1)
else:
staircase.addData(0)
trial +=1
although interestingly, calling print(staircase.stepSizes)
indicates the value is being changed, although as the person replying in the post linked above states, the knock-on effects of initialising with this value don’t carry over.
If anyone does have a solution, I’d love to hear it! for now I may have to hard code in my own staircase
Edit: found some sort of solution here: stairHandler step size change based on trial number/ dynamic step sizes