我正在为一项研究编写任务。我遇到的问题如下:我有一个字典,每个单元格有一个图片。像那样:
nameCues1 = {'Lisa','Anna', 'Sarah', 'Nina', 'resized_1.jpg' };
nameCues2 = {'Emma', 'Lena', 'Gabi', 'Steffi', 'resized_2.jpg' };
我已将它们加载到单元格数组中,创建了一个随机序列:
nameCuesAll = {nameCues1,nameCues2};
randSeq3 = nameCuesAll(randperm(size(nameCuesAll,2)));
然后我循环它以读取字典和相应图片的名称:
for i = 1:numel(nameCuesAll)
pics3{i} = imread(randSeq3{i}{1,5});
ind{i}=randSeq3{i}(randperm(numel(randSeq3{i})));
end
然后我通过Psychtoolbox在屏幕上提示它,这是一个专门为研究创建任务的工具箱,对于那些不知道的人:
for j = 1:4
% (left out unnecessary other functions)
DrawFormattedText(window,ind{i}(j), 'center', 'center', white, [], [], [], [], [], rect);
end
问题是字典的名称没有按随机顺序显示,而且到目前为止每次尝试都会抛出错误。 主要问题是我不知道如何正确随机化/索引 字典名称。
感谢您的任何想法!
答案 0 :(得分:1)
要重新排序单元格数组的元素,您应该使用()
:
nameCues1 = {'Lisa','Anna', 'Sarah', 'Nina', 'resized_1.jpg' };
rIdx = randperm(numel(nameCues1));
mixedCues = nameCues1(rIdx)
对rIdx = [3 5 1 4 2]
:
mixedCues =
1×5 cell array
{'Sarah'} {'resized_1.jpg'} {'Lisa'} {'Nina'} {'Anna'}
然后使用mixedCues
代替nameCues1
。