Call a function within an if statement

11 次查看(过去 30 天)
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!!

采纳的回答

Jonas
Jonas 2022-7-4
编辑:Jonas 2022-7-4
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

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Get Started with MATLAB 的更多信息

标签

产品


版本

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by