我对Matlab来说相对较新,而且我一直在努力解决我的问题,但我只是不断地走到了死胡同。
我有一个代码,理论上应该以随机顺序播放3个声音(每个试验的每个顺序都不同)。在每次播放声音时,将询问参与者他们听到的声音,然后给出反馈。我已经完成了所有代码,直到随机顺序部分为止。我创建的代码在每个试验中将随机排序1,2和3.
Order = [1, 2, 3];
PhonemeOrder = randperm (numel(Order));
然后我有一个功能播放声音/询问问题等我已经尝试过switch case语句和if else语句取决于PhonemeOrder产生的数量但订单不会改变,即使在音素订单的情况下也是如此。我相信我的问题是,PhonemeOrder像[1,2,3]或[3,1,2]那样出现,这就是我想要的。但我不知道如何让我的声音以它显示的顺序播放,因为我使用的代码就像......
if/ PhonemeOrder = 1;
then do this...
elseif phonemeorder = 2;
then do this...
else
do this...
或者我尝试过像
这样的代码 switch cases
case 1
do this
case 2
do this
case 3
do this
我猜这是我出错的地方,但我只是不知道如何改变它并让它发挥作用!我希望这是有道理的?我只需要按照phonemeorder指定的顺序播放,每次试用的顺序都会改变。
任何帮助将不胜感激:D
答案 0 :(得分:1)
bexG,
我认为你走在正确的轨道上。 你唯一需要的是使用" for-loop"通过PhonemeOrder数组。
for i=1:length(PhonemeOrder)
switch PhonemeOrder(i)
case 1
play the first song
case 2
play the second song
case 3
play the thrid song
end
end
我希望这会有所帮助。 如果您有任何其他问题,请与我们联系。