randomization of a vector by blocks
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Alejandro Estudillo
am 25 Jun. 2018
Kommentiert: Alejandro Estudillo
am 26 Jun. 2018
I am programming an experiment. Let's say that my experiment has 13 different conditions. Each condition is presented twice per block. There are two blocks in total. This makes a total of 52 trials.
conditions = repmat(1:13,1,4)
I can randomize the variable condition.
conditionsrand = conditions(randperm(length(conditions)))
However, I would like to do this randomization by block. That is every 26 trials there should be two instances of each condition. I think that this must be something easy, but I cannot find the solution.
Any idea?
Thanks!
0 Kommentare
Akzeptierte Antwort
Jos (10584)
am 25 Jun. 2018
Bearbeitet: Jos (10584)
am 25 Jun. 2018
C = repmat(1:13,1,2) % conditions per block
% [block1 block2]
rC = [C(randperm(numel(C))) C(randperm(numel(C)))] % *corrected
3 Kommentare
Jos (10584)
am 25 Jun. 2018
I forgot two closing brackets, which is now corrected. Do you want to create all trials at once? An easy alternative:
C = 1:5
numC = numel(C)
numCperBlock = 2
numBlocks = 3
[~,r] = sort(rand(numC, numCperBlock * numBlocks))
rC = reshape(C(r),1,[])
Weitere Antworten (0)
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!