2013-06-21 2 views
0

Я пишу задачу для эксперимента, мне нужно, чтобы пользователь услышал 400 звуковых импульсов чистого тона и интервала 600 мс между ними, но - в 10 % интервалов - это изменения в длительности интервала.Пользовательский ввод во время воспроизведения последовательности звуков в цикле [matlab]

Пользователю необходимо нажать клавишу каждый раз, когда он распознает изменение продолжительности (время необходимо сохранить в массиве ..), и если никаких изменений - пользователь не коснется ключа .. (так что это 0 для без ввода, 1 для ввода)

for i = 1:pulse_number; 
    wavplay(amplitude*beep,Sr,'async') 
    pause(ISIarray(i)) % array of different interval duration 
end 

Я не могу найти способ, чтобы запустить цикл и собирать данные, введенные пользователем (GetChar (psychotoolbox) внутри цикла ожидания для пользовательского ввода, чтобы продолжить)

спасибо !!

ответ

0

Использование KbCheck или KbQueueCheck (при использовании очереди). Вы не сможете использовать паузу. Вместо этого используйте цикл while:

start_time = GetSecs; 
while GetSecs - start_time < interval_duration(i) 
    [press secs] = KbCheck; 
end