Using Compound to match image/audio/written words

3 views (last 30 days)
I'm using Psychtoolbox to built an experiment using stimuli from different modalities, grouped in different array( audio, image and written words). The item in the differents modalities has to be compound, cause 5 item will be inittialy presented and later recognized within a mixed sequence in all modalities:
I did this code
ImageList={imagelist.jpg}
wordList={words}
soundlist={soundlist.wav};
correctness=[1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2];
for k=1:38
compound{k,1}=wordList{k};
compound{k,2}=MyImages{k};
compound{k,3}=word{k};
end
randcompound= Shuffle(compound);
for k=1:38
randcompound{k,4}=correctness(k);
end
The compound works, but when I shuffle it in randcompound it mix everything.
Any suggestion?
  1 Comment
Walter Roberson
Walter Roberson on 9 Aug 2017
Why not assign correctness before doing the Shuffle, so that it gets shuffled with everything else?

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 9 Aug 2017
ImageList={imagelist.jpg} %assumes imagelist is a struct array with field named 'jpg'
wordList={words}
soundlist={soundlist.wav}; %assumes soundlist is a struct array with field named 'wav'
Compound(:,1) = ImageList(:);
Compound(:,2) = wordList(:);
Compound(:,3) = soundlist(:);
Compound(:,4) = num2cell( correctness(:) );
ncomp = size(Compound, 1);
randidx = randperm(ncomp);
randcompound = compound(randidx, :);
  2 Comments
Laura Pizzato
Laura Pizzato on 9 Aug 2017
It works because it mantain compound even with randomization, but It obviously mark as correct (correctness=1) only the top 5 array's compounds, e.g ant.jpg, ant.wav ant, whereas I have to mark as correct the 5 item randomly selected by the array. How could I face that?
Walter Roberson
Walter Roberson on 9 Aug 2017
ImageList={imagelist.jpg} %assumes imagelist is a struct array with field named 'jpg'
wordList={words}
soundlist={soundlist.wav}; %assumes soundlist is a struct array with field named 'wav'
Compound(:,1) = ImageList(:);
Compound(:,2) = wordList(:);
Compound(:,3) = soundlist(:);
ncomp = size(Compound, 1);
Compound(:,4) = num2cell( correctness(randperm(ncomp)) );
randidx = randperm(ncomp);
randcompound = compound(randidx, :);

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!