Borrar filtros
Borrar filtros

randomization of a vector by blocks

2 visualizaciones (últimos 30 días)
Alejandro Estudillo
Alejandro Estudillo el 25 de Jun. de 2018
Comentada: Alejandro Estudillo el 26 de Jun. de 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!

Respuesta aceptada

Jos (10584)
Jos (10584) el 25 de Jun. de 2018
Editada: Jos (10584) el 25 de Jun. de 2018
C = repmat(1:13,1,2) % conditions per block
% [block1 block2]
rC = [C(randperm(numel(C))) C(randperm(numel(C)))] % *corrected
  3 comentarios
Jos (10584)
Jos (10584) el 25 de Jun. de 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,[])
Alejandro Estudillo
Alejandro Estudillo el 26 de Jun. de 2018
thanks! that works perfectly!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre MATLAB en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by