Repeating or rerunning a loop

5 vues (au cours des 30 derniers jours)
Olivia Krieger
Olivia Krieger le 1 Avr 2019
Hello MATLAB community! I am hopeful that someone can help me solve this puzzle I've created for myself...
I am running an experiment using an eye tracker. When an eye movement is detected, I want to record the trial sequence number and then add those trials onto the end of the trial block. But once I'm through the loop I don't know how to restart the loop with a new sequence/new number of iterations.
This is an example of my loop (the real loop is quite long and complex)
seq = [3, 1, 2, 1, 3, 2]; % trial sequence
nTrials = length(seq);
addTrials = [];
for trial = 1:nTrials
option = seq(trial);
if option == 1
% do this
elseif option == 2
% do that
elseif option == 3
% do another thing
end
movement = 0;
% check for eye movements
if eye movement is detected % this is not real code
movement = movement + 1
end
% add trial with movement to new sequence vector
if movement > 0
addTrials = [addTrials option];
end
end
% Question: how can I get the loop to rerun using
% nTrials = length(addTrials) and option = addTrials(trial)
I am also open to other ways to solve this than I've currently started!
Thanks!
  2 commentaires
Jos (10584)
Jos (10584) le 1 Avr 2019
In this pseudo-code you can omit the whole movement variable. Did you take a look at my answer?
Olivia Krieger
Olivia Krieger le 2 Avr 2019
Hi, I check for eye movements in various places within the trial loop, so I've just added (from your suggestion)
if movement > 0
seq(end + 1) = option;
end
Thank you!!

Connectez-vous pour commenter.

Réponse acceptée

Jos (10584)
Jos (10584) le 1 Avr 2019
Use a while loop, which is more flexible than a for -loop. Something like this might work:
seq = [3, 1, 2, 1, 3, 2]; % trial sequence
k = 0 ;
while k < length(seq),
k = k + 1 ;
option = seq(k);
% check for eye movements
if eye movement is detected % this is not real code
% add trial with movement to the sequence vector
seq(end+1) = option ;
end
end
  1 commentaire
Olivia Krieger
Olivia Krieger le 2 Avr 2019
Modifié(e) : Olivia Krieger le 2 Avr 2019
Thank you!! This is very helpful and should work to resolve my issue, it worked in a little psuedocode I made. I will implement today in the actual experiment!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by