我正在为一项研究编程任务。我遇到的问题如下:我有一本字典,里面有名字,每个单元格有一张图片。诸如此类:
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
问题是字典的名称没有按随机顺序显示,到目前为止,我每次尝试都抛出了错误。 主要问题是我不知道如何正确地随机化/索引 字典名称。
感谢您的任何想法!
要对单元格数组的元素重新排序,您应该使用()
引用元素:
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
。
另请参阅:访问单元格阵列中的数据。