Problems with Indexing of cell array
显示 更早的评论
Hi guys!
The problem I have is the following: I have a dictionary with names and with one picture. I create a randomized sequence for my pictures. Now I want to display (via Psychtoolbox) the respective Name Cues for the image, but in randomized order. Hopefully my code snippet does show you what I mean:
nameCues1 = {'Lisa','Anna', 'Sarah', 'Nina', 'resized_1.jpg' };
nameCues2 = {'Emma', 'Lena', 'Gabi', 'Steffi', 'resized_2.jpg' };
nameCues3 = {'Tanja', 'Luisa', 'Jana', 'Nicole', 'resized_3.jpg' };
nameCues4 = {'Clara', 'Tina', 'Katja', 'Susi', 'resized_4.jpg' };
I have loaded them into a cell array:
nameCuesAll = {nameCues1,nameCues2, nameCues3}
Now I create a randomized sequence:
randSeq3 = nameCuesAll(randperm(size(nameCuesAll,2)));
%%Loop for Rating Phase
% Reads facial stimuli for "Explicit Recognition Phase"
for i = 1:numel(nameCuesAll)
pics3{i} = imread(randSeq3{i}{1,5});
ind{i}=randperm(numel(randSeq3{i}));
ind{i}=randSeq3{i}{ind}; %this doesn't work yet!
end
Then I prompt in on the Screen via the function of Psychtoolbox:
for j = 1:4
%%here I leave out some unnecessary functions of Psychtoolbox
DrawFormattedText(window,ind{i}(j), 'center', 'center', white, [], [], [], [], [], rect);
end
I put in some hard hours, but didn't come close to a sufficient solution. I would be very glad if someone could help me out here.
Thanks so much!
5 个评论
Ameer Hamza
2018-5-26
The syntax is wrong since you are trying to pass a cell array as indexing vector. But if you can explain what are you trying to do in that line, it might be possible to suggest a solution.
Ameer Hamza
2018-5-27
ind{i}=randperm(numel(randSeq3{i}))
does produce an output like 2,3,1,4,5 but what do you expect from the output of
ind{i}=randSeq3{i}{ind};
Let's make the example concrete. For example if
randSeq3{1} = {'Emma', 'Lena', 'Gabi', 'Steffi', 'resized_2.jpg' }
Then
ind{1}=randperm(numel(randSeq3{i}));
will produce something like 2,3,1,4,5. What do you expect the value of ind{1} after
ind{1}=randSeq3{1}{ind};
Ameer Hamza
2018-5-27
编辑:Ameer Hamza
2018-5-27
I am not sure, but it appears that you want to do something like this
ind{i}=randSeq3{i}(randperm(numel(randSeq3{i})));
You might want to go through indexing concepts in MATLAB
回答(0 个)
类别
在 帮助中心 和 File Exchange 中查找有关 Timing and presenting 2D and 3D stimuli 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!