Problems with Indexing of cell array
Afficher commentaires plus anciens
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 commentaires
Ameer Hamza
le 26 Mai 2018
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
le 27 Mai 2018
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
le 27 Mai 2018
Modifié(e) : Ameer Hamza
le 27 Mai 2018
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
Réponses (0)
Catégories
En savoir plus sur Timing and presenting 2D and 3D stimuli dans Centre d'aide et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!