重新排列单元阵列



我正在为一项研究编程任务。我遇到的问题如下:我有一本字典,里面有名字,每个单元格有一张图片。诸如此类:

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

另请参阅:访问单元格阵列中的数据。

最新更新