Reshaping a matrix and binding two values together
Mostra commenti meno recenti
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!
Risposte (1)
KSSV
il 28 Lug 2020
iwant = reshape(randperm(20),10,2) ;
8 Commenti
Rupert Steinmeier
il 28 Lug 2020
Modificato: Rupert Steinmeier
il 28 Lug 2020
KSSV
il 28 Lug 2020
If A is your m*2 matrix
A = A' ;
iwant = A(:)'
Is this what you want?
Rupert Steinmeier
il 28 Lug 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
il 28 Lug 2020
KSSV
il 28 Lug 2020
idx = reshape(randperm(length(A)),[],2) ;
It seems you have more than 20 elements....
Rupert Steinmeier
il 28 Lug 2020
KSSV
il 28 Lug 2020
Read about randperm.
Categorie
Scopri di più su Creating and Concatenating Matrices in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!