Reshaping a matrix and binding two values together
Mostrar comentarios más antiguos
Hello dear Matlab Community!
Since I am a total novice in Matlab I'm stuck with the following, probably easily solvable, problem.
I have a matrix in the following arrangement:
20 9
12 4
3 15
6 7
. .
. .
and so forth, the integers of each column reach from 1 to 20 and are paired with an integer from the other column. The same integers cannot be paired, so for example 14 14 would be impossible.
I want to present randomized pairings of stimuli.
So, firstly I need to rearrange my two columns to this from: 20 9 12 4 3 15 6 7...
Does anybody know how to do this?
And secondly, I want to bind every 2 integers and then shuffle them. For example, 20 and 9 are bound, 12 and 4 are bound, 3 and 15 are bound and so forth. And then shuffle them, so a new arrangement might be: 12 4 20 9 3 15...
I would very much appreciate any help!
Thanks in advance and best Regards!
Respuestas (1)
KSSV
el 28 de Jul. de 2020
iwant = reshape(randperm(20),10,2) ;
8 comentarios
Rupert Steinmeier
el 28 de Jul. de 2020
Editada: Rupert Steinmeier
el 28 de Jul. de 2020
KSSV
el 28 de Jul. de 2020
If A is your m*2 matrix
A = A' ;
iwant = A(:)'
Is this what you want?
Rupert Steinmeier
el 28 de Jul. de 2020
My first answer helps for this.
A = rand(10,2) ;
A = A' ;
A = A(:)' ;
idx = reshape(randperm(length(A)),10,2) ;
A = A(idx)
Rupert Steinmeier
el 28 de Jul. de 2020
KSSV
el 28 de Jul. de 2020
idx = reshape(randperm(length(A)),[],2) ;
It seems you have more than 20 elements....
Rupert Steinmeier
el 28 de Jul. de 2020
KSSV
el 28 de Jul. de 2020
Read about randperm.
Categorías
Más información sobre Creating and Concatenating Matrices en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!