Call a function within an if statement

1 Ansicht (letzte 30 Tage)
Philine Baumert
Philine Baumert am 4 Jul. 2022
Kommentiert: Philine Baumert am 4 Jul. 2022
Hi all,
I'm writing an experiment and want 3 different types of tasks to be displayed in a random order and to repeat that 5 times but with a changing task order. I've written my tasks as functions (DensityInstruction, DirectionInstruction, SpeedInstruction) so as to call them in my script. The functions on their own are running smoothly, they are stored in the same folder as the script, and I made sure to provide all the necessary input.
If I'm running my script (see below), it's working until after the Shuffle (so I'm getting the randomtasks vector in my workspace) but it doesn't display my functions. It doesn't display any errors or warnings or anything... Any ideas as to why that may be and how to fix it?
try
task = [1 2 3];
ifi = 16.6;
for e = 1:5
randomtasks = Shuffle(task);
for n = 1:length(randomtasks)
if randomtasks==1
vblDensIns = DensityInstruction (ifi);
elseif randomtasks==2
vblDirIns = DirectionInstruction(ifi);
elseif randomtasks==3
vblSpeedIns = SpeedInstruction(ifi);
end
end
end
catch
Screen('CloseAll');
psychrethrow(psychlasterror);
end
Thanks so much in advance!!

Akzeptierte Antwort

Jonas
Jonas am 4 Jul. 2022
Bearbeitet: Jonas am 4 Jul. 2022
try
randomtasks(n)==1
i guess without the (n) you would compare a vector to a value e.g.
[1 3 2]==1
ans = 1×3 logical array
1 0 0
which is not true and the if is not fullfilled

Weitere Antworten (0)

Kategorien

Mehr zu MATLAB finden Sie in Help Center und File Exchange

Tags

Produkte


Version

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by